[roll] Roll the config repository

GitOrigin-RevId: 3a476922a6d884b0479a7f1971509461c2066a19
Change-Id: I95e113bb867a084c9a82fbf0fdaa6f99d83629f0
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/docs-builder.textproto b/generated/pigweed/for_review_only/buildbucket/ci/docs-builder.textproto
index 1503d40..e411f91 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/docs-builder.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/docs-builder.textproto
@@ -48,6 +48,9 @@
       '    ]'
       '  },'
       '  "dry_run": false,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "docs_builder"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/experimental-full.textproto b/generated/pigweed/for_review_only/buildbucket/ci/experimental-full.textproto
index 315d087..e730b16 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/experimental-full.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/experimental-full.textproto
@@ -48,6 +48,11 @@
       '      "full"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "PIGWEED_EXPERIMENTAL_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/experimental-lintformat.textproto b/generated/pigweed/for_review_only/buildbucket/ci/experimental-lintformat.textproto
index b0833c7..c3519d5 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/experimental-lintformat.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/experimental-lintformat.textproto
@@ -49,6 +49,11 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "PIGWEED_EXPERIMENTAL_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-linux.textproto b/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-linux.textproto
index 84d315a..6e821de 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-linux.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-linux.textproto
@@ -53,6 +53,9 @@
       '  },'
       '  "cipd_path": "pigweed/host_tools",'
       '  "dry_run": false,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "target_to_cipd",'
       '  "replacements": ['
       '    {'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-mac.textproto b/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-mac.textproto
index ae5b443..de6599f 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-mac.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-mac.textproto
@@ -52,6 +52,9 @@
       '  },'
       '  "cipd_path": "pigweed/host_tools",'
       '  "dry_run": false,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "target_to_cipd",'
       '  "replacements": ['
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-windows.textproto b/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-windows.textproto
index 83318c0..b58aa90 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-windows.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/host-tools-builder-windows.textproto
@@ -53,6 +53,9 @@
       '  },'
       '  "cipd_path": "pigweed/host_tools",'
       '  "dry_run": false,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "target_to_cipd",'
       '  "replacements": ['
       '    {'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-lintformat.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-lintformat.textproto
index bf8292e..f4b9ddb 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-lintformat.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-lintformat.textproto
@@ -46,6 +46,9 @@
       '      "lintformat"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-bazel-build-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-bazel-build-host-clang.textproto
index 28989e8..09e9a9d 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-bazel-build-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-bazel-build-host-clang.textproto
@@ -46,6 +46,9 @@
       '      "bazel_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-bazel-test-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-bazel-test-host-clang.textproto
index 5a69aab..c168e98 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-bazel-test-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-bazel-test-host-clang.textproto
@@ -46,6 +46,9 @@
       '      "bazel_test"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-cmake-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-cmake-host-clang.textproto
index a56a0bc..aa3a269 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-cmake-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-cmake-host-clang.textproto
@@ -46,6 +46,9 @@
       '      "cmake_clang"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-cmake-host-gcc.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-cmake-host-gcc.textproto
index 0e03bec..5a42884 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-cmake-host-gcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-cmake-host-gcc.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-compatibility-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-compatibility-host-disco.textproto
index 78a4ba0..d6aae44 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-compatibility-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-compatibility-host-disco.textproto
@@ -46,6 +46,9 @@
       '      "gn_full_build_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-boringssl.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-boringssl.textproto
index 95d6f95..d6ecf47 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-boringssl.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-boringssl.textproto
@@ -46,6 +46,9 @@
       '      "gn_crypto_boringssl_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-build-micro-ecc.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-build-micro-ecc.textproto
index 8ec5aab..92c8c9c 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-build-micro-ecc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-build-micro-ecc.textproto
@@ -46,6 +46,9 @@
       '      "gn_crypto_micro_ecc_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-mbedtls.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-mbedtls.textproto
index abe0e30..f5d8bb4 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-mbedtls.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-crypto-mbedtls.textproto
@@ -46,6 +46,9 @@
       '      "gn_crypto_mbedtls_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-nanopb.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-nanopb.textproto
index 848efcf..20090a7 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-nanopb.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-nanopb.textproto
@@ -46,6 +46,9 @@
       '      "gn_nanopb_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-software-update.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-software-update.textproto
index 4c4b23b..0f96c2b 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-software-update.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-software-update.textproto
@@ -46,6 +46,9 @@
       '      "gn_software_update_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-teensy.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-teensy.textproto
index 0333882..781adcb 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-teensy.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-gn-teensy.textproto
@@ -46,6 +46,9 @@
       '      "gn_teensy_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-main-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-main-host-disco.textproto
index 48ee50a..c64e621 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-main-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-main-host-disco.textproto
@@ -46,6 +46,9 @@
       '      "gn_full_build_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-qemu-compatibility-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-qemu-compatibility-clang-armgcc.textproto
index 3fe3f0e..e2eb341 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-qemu-compatibility-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-qemu-compatibility-clang-armgcc.textproto
@@ -46,6 +46,9 @@
       '      "gn_full_qemu_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-qemu-main-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-qemu-main-clang-armgcc.textproto
index 7bdd275..4d37054 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-qemu-main-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-qemu-main-clang-armgcc.textproto
@@ -46,6 +46,9 @@
       '      "gn_full_qemu_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-asan.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-asan.textproto
index 27d252d..1e6616d 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-asan.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-asan.textproto
@@ -46,6 +46,9 @@
       '      "asan"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-tsan.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-tsan.textproto
index 065e69c..1443858 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-tsan.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-tsan.textproto
@@ -46,6 +46,9 @@
       '      "tsan"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-ubsan.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-ubsan.textproto
index 7f12ad9..96e779f 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-ubsan.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-san-ubsan.textproto
@@ -46,6 +46,9 @@
       '      "ubsan"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-static-analysis.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-static-analysis.textproto
index 38843d3..ffb615a 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-static-analysis.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-linux-static-analysis.textproto
@@ -46,6 +46,9 @@
       '      "static_analysis"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-bazel-test-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-bazel-test-host-clang.textproto
index 0783249..a140058 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-bazel-test-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-bazel-test-host-clang.textproto
@@ -46,6 +46,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-cmake-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-cmake-host-clang.textproto
index 4164767..cf52687 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-cmake-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-cmake-host-clang.textproto
@@ -46,6 +46,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-cmake-host-gcc.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-cmake-host-gcc.textproto
index aec8fb4..badde16 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-cmake-host-gcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-cmake-host-gcc.textproto
@@ -46,6 +46,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-compatibility-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-compatibility-host-disco.textproto
index 5684079..2bfed7b 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-compatibility-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-compatibility-host-disco.textproto
@@ -45,6 +45,9 @@
       '      "gn_full_build_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-gn-nanopb.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-gn-nanopb.textproto
index 56513a0..db60309 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-gn-nanopb.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-gn-nanopb.textproto
@@ -45,6 +45,9 @@
       '      "gn_nanopb_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-gn-teensy.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-gn-teensy.textproto
index f1de772..85fcfc9 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-gn-teensy.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-gn-teensy.textproto
@@ -45,6 +45,9 @@
       '      "gn_teensy_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-main-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-main-host-disco.textproto
index 56a02ed..b980982 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-main-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-main-host-disco.textproto
@@ -45,6 +45,9 @@
       '      "gn_full_build_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-qemu-compatibility-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-qemu-compatibility-clang-armgcc.textproto
index fc62587..b83c13e 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-qemu-compatibility-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-qemu-compatibility-clang-armgcc.textproto
@@ -46,6 +46,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-qemu-main-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-qemu-main-clang-armgcc.textproto
index 1001562..076a6eb 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-qemu-main-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-mac-qemu-main-clang-armgcc.textproto
@@ -45,6 +45,9 @@
       '      "gn_full_qemu_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i-combined.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i-combined.textproto
index 7838eb5..b37db9b 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i-combined.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i-combined.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i-subbuild.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i-subbuild.textproto
index 9d2d5dd..7d55ad6 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i-subbuild.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i-subbuild.textproto
@@ -50,6 +50,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "build"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i.textproto
index 43fea92..941136d 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-stm32f429i.textproto
@@ -42,6 +42,9 @@
       '    "config_file": "pw_env_setup/config.json"'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pigweed"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-bazel-test-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-bazel-test-host-clang.textproto
index 3877c63..10813be 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-bazel-test-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-bazel-test-host-clang.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-compatibility-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-compatibility-host-disco.textproto
index 713190c..2ebac3d 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-compatibility-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-compatibility-host-disco.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-gn-nanopb.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-gn-nanopb.textproto
index 410d784..5dc0621 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-gn-nanopb.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-gn-nanopb.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-main-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-main-host-disco.textproto
index d74d314..48173d2 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-main-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-main-host-disco.textproto
@@ -46,6 +46,9 @@
       '      "gn_full_build_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-qemu-compatibility-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-qemu-compatibility-clang-armgcc.textproto
index af05631..75ae108 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-qemu-compatibility-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-qemu-compatibility-clang-armgcc.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-qemu-main-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-qemu-main-clang-armgcc.textproto
index c14aa56..971db69 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-qemu-main-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-windows-qemu-main-clang-armgcc.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-xref-generator.textproto b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-xref-generator.textproto
index eb8d306..6f4f438 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/pigweed-xref-generator.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/pigweed-xref-generator.textproto
@@ -42,6 +42,9 @@
       '    "config_file": "pw_env_setup/config.json"'
       '  },'
       '  "dry_run": false,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "xrefs"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-linux.textproto b/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-linux.textproto
index 77bcd82..19314fe 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-linux.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-linux.textproto
@@ -48,6 +48,11 @@
       '      "default_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-mac.textproto b/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-mac.textproto
index 6cc90d2..c2d889d 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-mac.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-mac.textproto
@@ -47,6 +47,11 @@
       '      "default_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-windows.textproto b/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-windows.textproto
index c54fba0..65d1e48 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-windows.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/sample-project-default-build-windows.textproto
@@ -48,6 +48,11 @@
       '      "default_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/sample-project-lintformat.textproto b/generated/pigweed/for_review_only/buildbucket/ci/sample-project-lintformat.textproto
index fb1c7ee..85506ed 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/sample-project-lintformat.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/sample-project-lintformat.textproto
@@ -48,6 +48,11 @@
       '      "lintformat"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/ci/sample-project-xref-generator.textproto b/generated/pigweed/for_review_only/buildbucket/ci/sample-project-xref-generator.textproto
index fb2248b..8930152 100644
--- a/generated/pigweed/for_review_only/buildbucket/ci/sample-project-xref-generator.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/ci/sample-project-xref-generator.textproto
@@ -44,6 +44,11 @@
       '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
       '  },'
       '  "dry_run": false,'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "recipe": "xrefs"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/roll/pigweed-update-python-versions.textproto b/generated/pigweed/for_review_only/buildbucket/roll/pigweed-update-python-versions.textproto
index 4eab86b..a591e2e 100644
--- a/generated/pigweed/for_review_only/buildbucket/roll/pigweed-update-python-versions.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/roll/pigweed-update-python-versions.textproto
@@ -42,6 +42,9 @@
       '    "config_file": "pw_env_setup/config.json"'
       '  },'
       '  "bot_commit": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "path_to_constraint_file": "pw_env_setup/py/pw_env_setup/virtualenv_setup/constraint.list",'
       '  "recipe": "update_python_versions"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/experimental-full.textproto b/generated/pigweed/for_review_only/buildbucket/try/experimental-full.textproto
index 205558d..8319bde 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/experimental-full.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/experimental-full.textproto
@@ -48,6 +48,11 @@
       '      "full"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "PIGWEED_EXPERIMENTAL_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/experimental-lintformat-full.textproto b/generated/pigweed/for_review_only/buildbucket/try/experimental-lintformat-full.textproto
index e8b09eb..871ade4 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/experimental-lintformat-full.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/experimental-lintformat-full.textproto
@@ -49,6 +49,11 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "PIGWEED_EXPERIMENTAL_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/experimental-lintformat.textproto b/generated/pigweed/for_review_only/buildbucket/try/experimental-lintformat.textproto
index 84f0a03..80dfe5a 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/experimental-lintformat.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/experimental-lintformat.textproto
@@ -50,6 +50,11 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "PIGWEED_EXPERIMENTAL_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-lintformat-full.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-lintformat-full.textproto
index 52cee3d..6db6658 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-lintformat-full.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-lintformat-full.textproto
@@ -46,6 +46,9 @@
       '      "lintformat"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-lintformat.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-lintformat.textproto
index b8229db..b3a60ae 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-lintformat.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-lintformat.textproto
@@ -47,6 +47,9 @@
       '      "lintformat"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-bazel-build-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-bazel-build-host-clang.textproto
index a5d7fae..b97596f 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-bazel-build-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-bazel-build-host-clang.textproto
@@ -46,6 +46,9 @@
       '      "bazel_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-bazel-test-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-bazel-test-host-clang.textproto
index ca6787e..9128c99 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-bazel-test-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-bazel-test-host-clang.textproto
@@ -46,6 +46,9 @@
       '      "bazel_test"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-cmake-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-cmake-host-clang.textproto
index 4cd2adb..b46257b 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-cmake-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-cmake-host-clang.textproto
@@ -46,6 +46,9 @@
       '      "cmake_clang"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-cmake-host-gcc.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-cmake-host-gcc.textproto
index 40aae26..65e3a65 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-cmake-host-gcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-cmake-host-gcc.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-compatibility-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-compatibility-host-disco.textproto
index 6b09c3c..7e0b5b4 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-compatibility-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-compatibility-host-disco.textproto
@@ -46,6 +46,9 @@
       '      "gn_full_build_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-boringssl.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-boringssl.textproto
index 7e70d8a..85c6833 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-boringssl.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-boringssl.textproto
@@ -46,6 +46,9 @@
       '      "gn_crypto_boringssl_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-build-micro-ecc.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-build-micro-ecc.textproto
index 5ebe9db..882ed1d 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-build-micro-ecc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-build-micro-ecc.textproto
@@ -46,6 +46,9 @@
       '      "gn_crypto_micro_ecc_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-mbedtls.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-mbedtls.textproto
index fbcc94a..58a2e28 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-mbedtls.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-crypto-mbedtls.textproto
@@ -46,6 +46,9 @@
       '      "gn_crypto_mbedtls_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-hosttools.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-hosttools.textproto
index 2930161..4314ad5 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-hosttools.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-hosttools.textproto
@@ -46,6 +46,9 @@
       '      "gn_host_tools"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-nanopb.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-nanopb.textproto
index fb0fa28..b73dd49 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-nanopb.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-nanopb.textproto
@@ -46,6 +46,9 @@
       '      "gn_nanopb_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-software-update.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-software-update.textproto
index af21547..8bde9c4 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-software-update.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-software-update.textproto
@@ -46,6 +46,9 @@
       '      "gn_software_update_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-teensy.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-teensy.textproto
index f07b670..3795a6d 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-teensy.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-gn-teensy.textproto
@@ -46,6 +46,9 @@
       '      "gn_teensy_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-main-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-main-host-disco.textproto
index 6903422..9669d99 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-main-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-main-host-disco.textproto
@@ -46,6 +46,9 @@
       '      "gn_full_build_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-qemu-compatibility-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-qemu-compatibility-clang-armgcc.textproto
index e1597dc..5562884 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-qemu-compatibility-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-qemu-compatibility-clang-armgcc.textproto
@@ -46,6 +46,9 @@
       '      "gn_full_qemu_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-qemu-main-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-qemu-main-clang-armgcc.textproto
index ca8c811..053c7bc 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-qemu-main-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-qemu-main-clang-armgcc.textproto
@@ -46,6 +46,9 @@
       '      "gn_full_qemu_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-asan.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-asan.textproto
index ce4a491..d4bd3fa 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-asan.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-asan.textproto
@@ -46,6 +46,9 @@
       '      "asan"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-tsan.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-tsan.textproto
index cadb7e0..0d22606 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-tsan.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-tsan.textproto
@@ -46,6 +46,9 @@
       '      "tsan"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-ubsan.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-ubsan.textproto
index 8bba92c..d4669ff 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-ubsan.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-san-ubsan.textproto
@@ -46,6 +46,9 @@
       '      "ubsan"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-static-analysis.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-static-analysis.textproto
index 7eeb2eb..3a3b448 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-static-analysis.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-linux-static-analysis.textproto
@@ -46,6 +46,9 @@
       '      "static_analysis"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-bazel-test-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-bazel-test-host-clang.textproto
index a84fd4f..7fde803 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-bazel-test-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-bazel-test-host-clang.textproto
@@ -46,6 +46,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-cmake-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-cmake-host-clang.textproto
index 15264fd..22ff487 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-cmake-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-cmake-host-clang.textproto
@@ -46,6 +46,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-cmake-host-gcc.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-cmake-host-gcc.textproto
index 7d29976..e38ac6b 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-cmake-host-gcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-cmake-host-gcc.textproto
@@ -46,6 +46,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-compatibility-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-compatibility-host-disco.textproto
index 83abf67..dd53d98 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-compatibility-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-compatibility-host-disco.textproto
@@ -45,6 +45,9 @@
       '      "gn_full_build_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-hosttools.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-hosttools.textproto
index 4f3df37..4c9cf88 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-hosttools.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-hosttools.textproto
@@ -45,6 +45,9 @@
       '      "gn_host_tools"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-nanopb.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-nanopb.textproto
index 9c6f3ef..e9fc094 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-nanopb.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-nanopb.textproto
@@ -45,6 +45,9 @@
       '      "gn_nanopb_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-teensy.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-teensy.textproto
index daf020b..4c176ce 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-teensy.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-gn-teensy.textproto
@@ -45,6 +45,9 @@
       '      "gn_teensy_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-main-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-main-host-disco.textproto
index 94b778b..fd396e8 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-main-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-main-host-disco.textproto
@@ -45,6 +45,9 @@
       '      "gn_full_build_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-qemu-compatibility-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-qemu-compatibility-clang-armgcc.textproto
index dece6cd..c25945b 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-qemu-compatibility-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-qemu-compatibility-clang-armgcc.textproto
@@ -46,6 +46,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-qemu-main-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-qemu-main-clang-armgcc.textproto
index f689d50..c8865f9 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-qemu-main-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-mac-qemu-main-clang-armgcc.textproto
@@ -45,6 +45,9 @@
       '      "gn_full_qemu_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-renode.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-renode.textproto
index aaaef70..6e7579f 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-renode.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-renode.textproto
@@ -42,6 +42,9 @@
       '    "config_file": "pw_env_setup/config.json"'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "run_script",'
       '  "script": "pw_unit_test/renode/test.sh"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i-combined.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i-combined.textproto
index 0545a48..420084e 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i-combined.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i-combined.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i-subbuild.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i-subbuild.textproto
index 094fa9e..6987e8c 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i-subbuild.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i-subbuild.textproto
@@ -50,6 +50,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "build"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i.textproto
index fccb871..38b25f5 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-stm32f429i.textproto
@@ -42,6 +42,9 @@
       '    "config_file": "pw_env_setup/config.json"'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pigweed"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-bazel-test-host-clang.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-bazel-test-host-clang.textproto
index aa66750..5a7bcb2 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-bazel-test-host-clang.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-bazel-test-host-clang.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-compatibility-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-compatibility-host-disco.textproto
index d470d12..9d76427 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-compatibility-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-compatibility-host-disco.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-gn-hosttools.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-gn-hosttools.textproto
index d99eade..8368411 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-gn-hosttools.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-gn-hosttools.textproto
@@ -46,6 +46,9 @@
       '      "gn_host_tools"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-gn-nanopb.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-gn-nanopb.textproto
index bb40cba..0e161f1 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-gn-nanopb.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-gn-nanopb.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-main-host-disco.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-main-host-disco.textproto
index 43a6fe2..d97497f 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-main-host-disco.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-main-host-disco.textproto
@@ -46,6 +46,9 @@
       '      "gn_full_build_check"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-qemu-compatibility-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-qemu-compatibility-clang-armgcc.textproto
index 8b2fd9c..20c7b93 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-qemu-compatibility-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-qemu-compatibility-clang-armgcc.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/compatibility.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-qemu-main-clang-armgcc.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-qemu-main-clang-armgcc.textproto
index 56b6541..6e4b83f 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-qemu-main-clang-armgcc.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-windows-qemu-main-clang-armgcc.textproto
@@ -47,6 +47,9 @@
       '    ]'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 50
diff --git a/generated/pigweed/for_review_only/buildbucket/try/pigweed-xref-generator.textproto b/generated/pigweed/for_review_only/buildbucket/try/pigweed-xref-generator.textproto
index 7a786a3..20f693c 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/pigweed-xref-generator.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/pigweed-xref-generator.textproto
@@ -41,6 +41,9 @@
       '  "$pigweed/environment": {'
       '    "config_file": "pw_env_setup/config.json"'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "pw_env_setup/config.json"'
+      '  },'
       '  "recipe": "xrefs"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-linux.textproto b/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-linux.textproto
index d9a4cf2..087defd 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-linux.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-linux.textproto
@@ -48,6 +48,11 @@
       '      "default_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-mac.textproto b/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-mac.textproto
index f7008c2..0aa5f6f 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-mac.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-mac.textproto
@@ -47,6 +47,11 @@
       '      "default_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "macos_sdk.version": "11c29",'
       '  "recipe": "pw_presubmit"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-windows.textproto b/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-windows.textproto
index 4358005..5336852 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-windows.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/sample-project-default-build-windows.textproto
@@ -48,6 +48,11 @@
       '      "default_build"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/sample-project-lintformat-full.textproto b/generated/pigweed/for_review_only/buildbucket/try/sample-project-lintformat-full.textproto
index 31f49ad..6ca63ba 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/sample-project-lintformat-full.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/sample-project-lintformat-full.textproto
@@ -48,6 +48,11 @@
       '      "lintformat"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/sample-project-lintformat.textproto b/generated/pigweed/for_review_only/buildbucket/try/sample-project-lintformat.textproto
index 9614fae..6c38f58 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/sample-project-lintformat.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/sample-project-lintformat.textproto
@@ -49,6 +49,11 @@
       '      "lintformat"'
       '    ]'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "recipe": "pw_presubmit"'
       '}'
     priority: 40
diff --git a/generated/pigweed/for_review_only/buildbucket/try/sample-project-renode-test.textproto b/generated/pigweed/for_review_only/buildbucket/try/sample-project-renode-test.textproto
index ff416d0..b613389 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/sample-project-renode-test.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/sample-project-renode-test.textproto
@@ -44,6 +44,11 @@
       '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
       '  },'
       '  "dry_run": true,'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "recipe": "run_script",'
       '  "script": "pigweed/pw_unit_test/renode/test.sh"'
       '}'
diff --git a/generated/pigweed/for_review_only/buildbucket/try/sample-project-xref-generator.textproto b/generated/pigweed/for_review_only/buildbucket/try/sample-project-xref-generator.textproto
index dd48b28..4028ca4 100644
--- a/generated/pigweed/for_review_only/buildbucket/try/sample-project-xref-generator.textproto
+++ b/generated/pigweed/for_review_only/buildbucket/try/sample-project-xref-generator.textproto
@@ -43,6 +43,11 @@
       '    "relative_pigweed_root": "third_party/pigweed",'
       '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
       '  },'
+      '  "environment_options": {'
+      '    "config_file": "env_setup.json",'
+      '    "relative_pigweed_root": "third_party/pigweed",'
+      '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+      '  },'
       '  "recipe": "xrefs"'
       '}'
     priority: 40
diff --git a/generated/pigweed/luci/cr-buildbucket.cfg b/generated/pigweed/luci/cr-buildbucket.cfg
index 98216f9..98e11de 100644
--- a/generated/pigweed/luci/cr-buildbucket.cfg
+++ b/generated/pigweed/luci/cr-buildbucket.cfg
@@ -49,6 +49,9 @@
         '    ]'
         '  },'
         '  "dry_run": false,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "docs_builder"'
         '}'
       priority: 40
@@ -341,6 +344,11 @@
         '      "full"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "PIGWEED_EXPERIMENTAL_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -396,6 +404,11 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "PIGWEED_EXPERIMENTAL_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -456,6 +469,9 @@
         '  },'
         '  "cipd_path": "pigweed/host_tools",'
         '  "dry_run": false,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "target_to_cipd",'
         '  "replacements": ['
         '    {'
@@ -534,6 +550,9 @@
         '  },'
         '  "cipd_path": "pigweed/host_tools",'
         '  "dry_run": false,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "target_to_cipd",'
         '  "replacements": ['
@@ -619,6 +638,9 @@
         '  },'
         '  "cipd_path": "pigweed/host_tools",'
         '  "dry_run": false,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "target_to_cipd",'
         '  "replacements": ['
         '    {'
@@ -691,6 +713,9 @@
         '      "lintformat"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -743,6 +768,9 @@
         '      "bazel_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -800,6 +828,9 @@
         '      "bazel_test"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -857,6 +888,9 @@
         '      "cmake_clang"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -910,6 +944,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -963,6 +1000,9 @@
         '      "gn_full_build_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1015,6 +1055,9 @@
         '      "gn_crypto_boringssl_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1067,6 +1110,9 @@
         '      "gn_crypto_micro_ecc_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1119,6 +1165,9 @@
         '      "gn_crypto_mbedtls_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1171,6 +1220,9 @@
         '      "gn_nanopb_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1223,6 +1275,9 @@
         '      "gn_software_update_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1275,6 +1330,9 @@
         '      "gn_teensy_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1327,6 +1385,9 @@
         '      "gn_full_build_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1379,6 +1440,9 @@
         '      "gn_full_qemu_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1431,6 +1495,9 @@
         '      "gn_full_qemu_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1483,6 +1550,9 @@
         '      "asan"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1535,6 +1605,9 @@
         '      "tsan"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1587,6 +1660,9 @@
         '      "ubsan"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1639,6 +1715,9 @@
         '      "static_analysis"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -1691,6 +1770,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -1755,6 +1837,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -1814,6 +1899,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -1872,6 +1960,9 @@
         '      "gn_full_build_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -1929,6 +2020,9 @@
         '      "gn_nanopb_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -1986,6 +2080,9 @@
         '      "gn_teensy_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -2043,6 +2140,9 @@
         '      "gn_full_build_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -2101,6 +2201,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -2159,6 +2262,9 @@
         '      "gn_full_qemu_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -2213,6 +2319,9 @@
         '    "config_file": "pw_env_setup/config.json"'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pigweed"'
         '}'
       priority: 50
@@ -2267,6 +2376,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -2324,6 +2436,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "build"'
         '}'
       priority: 50
@@ -2378,6 +2493,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -2437,6 +2555,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -2491,6 +2612,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -2544,6 +2668,9 @@
         '      "gn_full_build_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -2597,6 +2724,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -2651,6 +2781,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -2700,6 +2833,9 @@
         '    "config_file": "pw_env_setup/config.json"'
         '  },'
         '  "dry_run": false,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "xrefs"'
         '}'
       priority: 40
@@ -2794,6 +2930,11 @@
         '      "default_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -2847,6 +2988,11 @@
         '      "default_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -2907,6 +3053,11 @@
         '      "default_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -3103,6 +3254,11 @@
         '      "lintformat"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -3153,6 +3309,11 @@
         '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
         '  },'
         '  "dry_run": false,'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "recipe": "xrefs"'
         '}'
       priority: 40
@@ -4239,6 +4400,9 @@
         '    "config_file": "pw_env_setup/config.json"'
         '  },'
         '  "bot_commit": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "path_to_constraint_file": "pw_env_setup/py/pw_env_setup/virtualenv_setup/constraint.list",'
         '  "recipe": "update_python_versions"'
         '}'
@@ -4692,6 +4856,11 @@
         '      "full"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "PIGWEED_EXPERIMENTAL_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -4748,6 +4917,11 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "PIGWEED_EXPERIMENTAL_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -4804,6 +4978,11 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "PIGWEED_EXPERIMENTAL_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -4858,6 +5037,9 @@
         '      "lintformat"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -4910,6 +5092,9 @@
         '      "lintformat"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -4962,6 +5147,9 @@
         '      "bazel_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5019,6 +5207,9 @@
         '      "bazel_test"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5076,6 +5267,9 @@
         '      "cmake_clang"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5129,6 +5323,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -5182,6 +5379,9 @@
         '      "gn_full_build_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5234,6 +5434,9 @@
         '      "gn_crypto_boringssl_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5286,6 +5489,9 @@
         '      "gn_crypto_micro_ecc_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5338,6 +5544,9 @@
         '      "gn_crypto_mbedtls_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5390,6 +5599,9 @@
         '      "gn_host_tools"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5447,6 +5659,9 @@
         '      "gn_nanopb_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5499,6 +5714,9 @@
         '      "gn_software_update_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5551,6 +5769,9 @@
         '      "gn_teensy_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5603,6 +5824,9 @@
         '      "gn_full_build_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5655,6 +5879,9 @@
         '      "gn_full_qemu_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5707,6 +5934,9 @@
         '      "gn_full_qemu_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5759,6 +5989,9 @@
         '      "asan"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5811,6 +6044,9 @@
         '      "tsan"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5863,6 +6099,9 @@
         '      "ubsan"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5915,6 +6154,9 @@
         '      "static_analysis"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -5967,6 +6209,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -6031,6 +6276,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -6090,6 +6338,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -6148,6 +6399,9 @@
         '      "gn_full_build_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -6205,6 +6459,9 @@
         '      "gn_host_tools"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -6267,6 +6524,9 @@
         '      "gn_nanopb_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -6324,6 +6584,9 @@
         '      "gn_teensy_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -6381,6 +6644,9 @@
         '      "gn_full_build_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -6439,6 +6705,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -6497,6 +6766,9 @@
         '      "gn_full_qemu_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -6551,6 +6823,9 @@
         '    "config_file": "pw_env_setup/config.json"'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "run_script",'
         '  "script": "pw_unit_test/renode/test.sh"'
         '}'
@@ -6601,6 +6876,9 @@
         '    "config_file": "pw_env_setup/config.json"'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pigweed"'
         '}'
       priority: 50
@@ -6655,6 +6933,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -6712,6 +6993,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "build"'
         '}'
       priority: 50
@@ -6766,6 +7050,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -6825,6 +7112,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -6878,6 +7168,9 @@
         '      "gn_host_tools"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -6936,6 +7229,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -6989,6 +7285,9 @@
         '      "gn_full_build_check"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -7042,6 +7341,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/compatibility.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -7096,6 +7398,9 @@
         '    ]'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 50
@@ -7144,6 +7449,9 @@
         '  "$pigweed/environment": {'
         '    "config_file": "pw_env_setup/config.json"'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "pw_env_setup/config.json"'
+        '  },'
         '  "recipe": "xrefs"'
         '}'
       priority: 40
@@ -7289,6 +7597,11 @@
         '      "default_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -7342,6 +7655,11 @@
         '      "default_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "macos_sdk.version": "11c29",'
         '  "recipe": "pw_presubmit"'
         '}'
@@ -7402,6 +7720,11 @@
         '      "default_build"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -7599,6 +7922,11 @@
         '      "lintformat"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -7653,6 +7981,11 @@
         '      "lintformat"'
         '    ]'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "recipe": "pw_presubmit"'
         '}'
       priority: 40
@@ -7703,6 +8036,11 @@
         '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
         '  },'
         '  "dry_run": true,'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "recipe": "run_script",'
         '  "script": "pigweed/pw_unit_test/renode/test.sh"'
         '}'
@@ -7754,6 +8092,11 @@
         '    "relative_pigweed_root": "third_party/pigweed",'
         '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
         '  },'
+        '  "environment_options": {'
+        '    "config_file": "env_setup.json",'
+        '    "relative_pigweed_root": "third_party/pigweed",'
+        '    "root_variable_name": "SAMPLE_PROJECT_ROOT"'
+        '  },'
         '  "recipe": "xrefs"'
         '}'
       priority: 40