Skip to content

fix: fix js_run_binary so tools executed with use_execroot_entry_point use exec-configuration runfiles#2823

Closed
longlho wants to merge 1 commit intoaspect-build:mainfrom
longlho:fix-js-run-binary-exec-tool-runfiles
Closed

fix: fix js_run_binary so tools executed with use_execroot_entry_point use exec-configuration runfiles#2823
longlho wants to merge 1 commit intoaspect-build:mainfrom
longlho:fix-js-run-binary-exec-tool-runfiles

Conversation

@longlho
Copy link
Copy Markdown

@longlho longlho commented May 4, 2026

js_run_binary runs its tool in exec config through bazel-lib run_binary, but previously hoisted the tool runfiles through target-config helper targets. When target and exec platforms differ, this can omit exec-platform files, including native optional npm packages such as @rolldown/binding-linux-x64-gnu.

This changes the runfiles hoist to use a helper rule with cfg = "exec" on the tool attribute. It also makes the launcher resolve execroot entry points with JS_BINARY__BINDIR when JS_BINARY__USE_EXECROOT_ENTRY_POINT is set, while preserving BAZEL_BINDIR for action context.

Repro repo: https://github.com/longlho/rules-js-exec-platform-repro


Changes are visible to end-users: yes

  • Searched for relevant documentation and updated as needed: yes
  • Breaking change (forces users to change their own code or config): no
  • Suggested release notes appear below: yes

Fix js_run_binary with use_execroot_entry_point under differing target and execution platforms, including native optional npm dependency resolution for JS tools.

Test plan

  • New test cases added
  • Manual testing:
    • npm exec --yes @bazel/bazelisk -- test //js/private/test/js_run_binary_exec_config:run_tool_uses_exec_config_runfiles --test_output=all
    • npm exec --yes @bazel/bazelisk -- run //:buildifier.check
    • npm exec --yes @bazel/bazelisk -- test //js/private/test/js_binary_sh/... //js/private/test/js_run_binary_exec_config:run_tool_uses_exec_config_runfiles --test_output=errors

@aspect-workflows
Copy link
Copy Markdown

aspect-workflows Bot commented May 4, 2026

Bazel 7 (Test)

253 test targets passed

Targets
//:npm_link_targets_node_modules_build_test [k8-fastbuild]                                             32ms
//:npm_link_targets_test [k8-fastbuild]                                                                44ms
//js/private/devserver:watch_checked_test [k8-fastbuild]                                               43ms
//js/private/test/create_launcher:test [k8-fastbuild]                                                  87ms
//js/private/test/data:extract-js_library-srcs2 [k8-fastbuild]                                         58ms
//js/private/test/data:extract-js_run_binary-srcs [k8-fastbuild]                                       43ms
//js/private/test/data:extract-write-js_library-data [k8-fastbuild]                                    61ms
//js/private/test/data:from-genrule [k8-fastbuild]                                                     109ms
//js/private/test/data:from-js_library-data [k8-fastbuild]                                             127ms
//js/private/test/data:from-js_run_binary-js_library-data [k8-fastbuild]                               79ms
//js/private/test/data:from-js_run_binary-js_library-srcs [k8-fastbuild]                               77ms
//js/private/test/data:from-js_run_binary-srcs [k8-fastbuild]                                          89ms
//js/private/test/data:from-parent-js_library-data [k8-fastbuild]                                      143ms
//js/private/test/fixed_args:args_test [k8-fastbuild]                                                  141ms
//js/private/test/image/non_ascii:assert_custom_layer_groups_test_app_test [k8-fastbuild]              52ms
//js/private/test/image/non_ascii:assert_custom_layer_groups_test_node_test [k8-fastbuild]             59ms
//js/private/test/image/non_ascii:assert_custom_layer_groups_test_package_store_1p_test [k8-fastbuild] 65ms
//js/private/test/image:assert_custom_layers_nomatch_test_node_test [k8-fastbuild]                     66ms
//js/private/test/image:assert_custom_layers_nomatch_test_package_store_3p_test [k8-fastbuild]         41ms
//js/private/test/image:assert_custom_owner_test_app_test [k8-fastbuild]                               57ms
//js/private/test/image:assert_custom_owner_test_node_modules_test [k8-fastbuild]                      62ms
//js/private/test/image:assert_custom_owner_test_package_store_1p_test [k8-fastbuild]                  59ms
//js/private/test/image:assert_default_test_node_modules_test [k8-fastbuild]                           74ms
//js/private/test/image:assert_default_test_package_store_1p_test [k8-fastbuild]                       62ms
//js/private/test/js_binary_sh:BAZEL_BINDIR_change_directory_test [k8-fastbuild]                       93ms
//js/private/test/js_binary_sh:BAZEL_BINDIR_test [k8-fastbuild]                                        137ms
//js/private/test/js_binary_sh:BAZEL_TARGET_test [k8-fastbuild]                                        71ms
//js/private/test/js_binary_sh:JS_BINARY__BINDIR_test [k8-fastbuild]                                   78ms
//js/private/test/js_binary_sh:JS_BINARY__PACKAGE_test [k8-fastbuild]                                  97ms
//js/private/test/js_binary_sh:JS_BINARY__TARGET_test [k8-fastbuild]                                   113ms
//js/private/test/js_binary_sh:env_json_encode_launcher_escaped [k8-fastbuild]                         70ms
//js/private/test/js_binary_sh:env_json_encode_value [k8-fastbuild]                                    129ms
//js/private/test/js_binary_sh:env_json_launcher_escaped [k8-fastbuild]                                79ms
//js/private/test/js_binary_sh:env_json_obj_launcher_escaped [k8-fastbuild]                            123ms
//js/private/test/js_binary_sh:env_json_str_launcher_escaped [k8-fastbuild]                            90ms
//js/private/test/js_binary_sh:env_json_value [k8-fastbuild]                                           139ms
//js/private/test/js_binary_sh:regexy-args-1 [k8-fastbuild]                                            124ms
//js/private/test/js_run_devserver:js_run_devserver_test [k8-fastbuild]                                165ms
//js/private/test/no_copy_to_bin:no_copy_to_bin_test [k8-fastbuild]                                    165ms
//js/private/test/node-patches:escape_node24_test [k8-fastbuild]                                       149ms
//js/private/test/node-patches:escape_nodejs_test [k8-fastbuild]                                       168ms
//js/private/test/node-patches:lstat_node22_test [k8-fastbuild]                                        177ms
//js/private/test/node-patches:lstat_nodejs_cjs_test [k8-fastbuild]                                    133ms
//js/private/test/node-patches:lstat_nodejs_test [k8-fastbuild]                                        150ms
//js/private/test/node-patches:opendir_node22_test [k8-fastbuild]                                      206ms
//js/private/test/node-patches:opendir_nodejs_test [k8-fastbuild]                                      197ms
//js/private/test/node-patches:readdir_nodejs_test [k8-fastbuild]                                      161ms
//js/private/test/node-patches:readlink_node20_test [k8-fastbuild]                                     173ms
//js/private/test/node-patches:readlink_node22_test [k8-fastbuild]                                     179ms
//js/private/test/node-patches:readlink_node24_cjs_test [k8-fastbuild]                                 125ms
//js/private/test/node-patches:readlink_node24_test [k8-fastbuild]                                     183ms
//js/private/test/node-patches:realpath_node20_cjs_test [k8-fastbuild]                                 167ms
//js/private/test/node-patches:realpath_node24_test [k8-fastbuild]                                     198ms
//js/private/test/node-patches:spawn_test_node20 [k8-fastbuild]                                        1s
//js/private/test/node-patches:spawn_test_nodejs [k8-fastbuild]                                        710ms
//js/private/test/proto:proto_args_test [k8-fastbuild]                                                 38ms
//js/private/test/proto:proto_rewrite_imports_test [k8-fastbuild]                                      30ms
//js/private/test:data_in_runfiles_test [k8-fastbuild]                                                 101ms
//js/private/test:main_toolchain_22 [k8-fastbuild]                                                     114ms
//js/private/test:run_environment_info_tests_binary_env_test [k8-fastbuild]                            123ms
//js/private/test:run_environment_info_tests_test_both_subject [k8-fastbuild]                          88ms
//js/private/test:run_environment_info_tests_test_both_test [k8-fastbuild]                             61ms
//js/private/test:run_environment_info_tests_test_inherit_only_test [k8-fastbuild]                     67ms
//js/private/watch:watch_checked_0_test [k8-fastbuild]                                                 49ms
//js/private/watch:watch_checked_1_test [k8-fastbuild]                                                 60ms
//js/private/worker:worker_checked_test [k8-fastbuild]                                                 71ms
//npm/private/lifecycle/min:write_min_test [k8-fastbuild]                                              41ms
//npm/private/test/npm_package:test_pkg [k8-fastbuild]                                                 69ms
//npm/private/test/npm_package:test_pkg_3 [k8-fastbuild]                                               109ms
//npm/private/test/npm_package:test_pkg_4 [k8-fastbuild]                                               72ms
//npm/private/test/npm_package:test_pkg_with_node_modules [k8-fastbuild]                               69ms
//npm/private/test/subs:require_non-importers_test [k8-fastbuild]                                      80ms
//npm/private/test/subs:subs_test [k8-fastbuild]                                                       44ms
//npm/private/test:npm_auth_tests_test_0 [k8-fastbuild]                                                76ms
//npm/private/test:npm_auth_tests_test_2 [k8-fastbuild]                                                147ms
//npm/private/test:npm_auth_tests_test_6 [k8-fastbuild]                                                74ms
//npm/private/test:pkg_versions_test [k8-fastbuild]                                                    49ms
//npm/private/test:test_generated_pkg_json___rollup-binary__entry_point_tagged_manual [k8-fastbuild]   52ms
//npm/private/test:test_generated_pkg_json___rollup-target_exec_runfiles_tagged_manual [k8-fastbuild]  66ms
//npm/private/test:test_generated_pkg_json___rollup-target_runfiles_tagged_manual [k8-fastbuild]       34ms
//npm/private/test:test_generated_pkg_json___rollup-test__entry_point_tagged_manual [k8-fastbuild]     185ms
//npm/private/test:test_generated_pkg_json_only_expected_methods [k8-fastbuild]                        92ms
//npm/private/test:test_npm_package_visibility_test_1 [k8-fastbuild]                                   37ms
//npm/private/test:test_npm_package_visibility_test_12 [k8-fastbuild]                                  45ms
//npm/private/test:test_npm_package_visibility_test_2 [k8-fastbuild]                                   33ms
//npm/private/test:test_npmrc_test_1 [k8-fastbuild]                                                    66ms
//npm/private/test:test_npmrc_test_2 [k8-fastbuild]                                                    43ms
//npm/private/test:test_npmrc_test_3 [k8-fastbuild]                                                    40ms
//npm/private/test:test_npmrc_test_6 [k8-fastbuild]                                                    38ms
//npm/private/test:test_pnpm_test_0 [k8-fastbuild]                                                     82ms
//npm/private/test:test_pnpm_test_4 [k8-fastbuild]                                                     62ms
//npm/private/test:test_pnpm_test_6 [k8-fastbuild]                                                     113ms
//npm/private/test:test_transitive_closure_test_0 [k8-fastbuild]                                       29ms
//npm/private/test:test_utils_test_1 [k8-fastbuild]                                                    95ms
//npm/private/test:write_npm_translate_lock_0_test [k8-fastbuild]                                      144ms
//npm/private/test:write_npm_translate_lock_1_test [k8-fastbuild]                                      74ms
//npm/private/test:write_npm_translate_lock_4_test [k8-fastbuild]                                      57ms
//npm/private/test:write_npm_translate_lock_6_test [k8-fastbuild]                                      51ms
//npm/private/test:write_npm_translate_lock_8_test [k8-fastbuild]                                      85ms
//tools:preset.update_test [k8-fastbuild]                                                              106ms
+ 153 other targets

Bazel 8 (Test)

Buildkite build #12631 is running...


Bazel 9 (Test)

Buildkite build #12631 is running...


Bazel 7 (Test)

e2e/bzlmod

7 test targets passed

Targets
//:check_styles [k8-fastbuild]                                                                         100ms
//:jasmine_test [k8-fastbuild]                                                                         116ms
//:node_modules_test [k8-fastbuild]                                                                    24ms
//:other_module_binary_test [k8-fastbuild]                                                             41ms
//:other_module_linked_packages [k8-fastbuild]                                                         29ms
//:other_module_run_binary_test [k8-fastbuild]                                                         41ms
//:test [k8-fastbuild]                                                                                 93ms

Bazel 8 (Test)

e2e/bzlmod

All tests were cache hits

7 tests (100.0%) were fully cached saving 767ms.


Bazel 9 (Test)

e2e/bzlmod

All tests were cache hits

7 tests (100.0%) were fully cached saving 487ms.


Bazel 7 (Test)

e2e/git_dep_metadata

1 test target passed

Targets
//:no_git_metadata_test                                                                                35ms

Bazel 8 (Test)

e2e/git_dep_metadata

All tests were cache hits

1 test (100.0%) was fully cached saving 26ms.


Bazel 9 (Test)

e2e/git_dep_metadata

All tests were cache hits

1 test (100.0%) was fully cached saving 30ms.


Bazel 7 (Test)

e2e/gyp_no_install_script

2 test targets passed

Targets
//:test [k8-fastbuild]                                                                                 51ms
//:write_npm_translate_lock_bzlmod_test [k8-fastbuild]                                                 34ms

Bazel 8 (Test)

e2e/gyp_no_install_script

All tests were cache hits

1 test (100.0%) was fully cached saving 50ms.


Bazel 9 (Test)

e2e/gyp_no_install_script

All tests were cache hits

1 test (100.0%) was fully cached saving 50ms.


Bazel 7 (Test)

e2e/js_binary_workspace

Buildkite build #12631 is running...


Bazel 8 (Test)

e2e/js_binary_workspace

All tests were cache hits

4 tests (100.0%) were fully cached saving 229ms.


Bazel 9 (Test)

e2e/js_binary_workspace

All tests were cache hits

4 tests (100.0%) were fully cached saving 209ms.


Bazel 7 (Test)

e2e/js_image_oci

1 test target passed

Targets
//src:image_test [k8-fastbuild]                                                                        4s

Bazel 7 (Test)

e2e/nextjs

3 test targets passed

Targets
//v15/cjs:test [k8-fastbuild]                                                                          26ms
//v15/esm:test [k8-fastbuild]                                                                          36ms
//v15/mjs:test [k8-fastbuild]                                                                          33ms

Bazel 8 (Test)

e2e/nextjs

All tests were cache hits

3 tests (100.0%) were fully cached saving 94ms.


Bazel 9 (Test)

e2e/nextjs

All tests were cache hits

3 tests (100.0%) were fully cached saving 112ms.


Bazel 7 (Test)

e2e/npm_link_package

4 test targets passed

Targets
//cjs/src:test [k8-fastbuild]                                                                          179ms
//cjs:package_store_targets_test [k8-fastbuild]                                                        35ms
//esm/src:test [k8-fastbuild]                                                                          151ms
//esm:package_store_targets_test [k8-fastbuild]                                                        41ms

Bazel 8 (Test)

e2e/npm_link_package

All tests were cache hits

4 tests (100.0%) were fully cached saving 470ms.


Bazel 9 (Test)

e2e/npm_link_package

All tests were cache hits

4 tests (100.0%) were fully cached saving 450ms.


Bazel 7 (Test)

e2e/npm_link_package-rerooted

2 test targets passed

Targets
//root/src:test [k8-fastbuild]                                                                         126ms
//root:package_store_targets_test [k8-fastbuild]                                                       26ms

Bazel 8 (Test)

e2e/npm_link_package-rerooted

All tests were cache hits

2 tests (100.0%) were fully cached saving 143ms.


Bazel 9 (Test)

e2e/npm_link_package-rerooted

Buildkite build #12631 is running...


Bazel 7 (Test)

e2e/npm_translate_lock

3 test targets passed

Targets
//:test                                                                                                34ms
//:test_dev_filtering                                                                                  139ms
//:test_prod_filtering                                                                                 157ms

Bazel 8 (Test)

e2e/npm_translate_lock

All tests were cache hits

3 tests (100.0%) were fully cached saving 272ms.


Bazel 9 (Test)

e2e/npm_translate_lock

All tests were cache hits

3 tests (100.0%) were fully cached saving 322ms.


Bazel 7 (Test)

e2e/npm_translate_lock_disable_hooks

3 test targets passed

Targets
//:test [k8-fastbuild]                                                                                 20ms
//:write_npm_translate_lock_defs_0_test [k8-fastbuild]                                                 44ms
//:write_npm_translate_lock_defs_1_test [k8-fastbuild]                                                 50ms

Bazel 8 (Test)

e2e/npm_translate_lock_disable_hooks

All tests were cache hits

1 test (100.0%) was fully cached saving 62ms.


Bazel 9 (Test)

e2e/npm_translate_lock_disable_hooks

All tests were cache hits

1 test (100.0%) was fully cached saving 32ms.


Bazel 7 (Test)

e2e/npm_translate_lock_empty

2 test targets passed

Targets
//:test [k8-fastbuild]                                                                                 18ms
//:write_npm_translate_lock_bzlmod_test [k8-fastbuild]                                                 45ms

Bazel 8 (Test)

e2e/npm_translate_lock_empty

All tests were cache hits

2 tests (100.0%) were fully cached saving 114ms.


Bazel 9 (Test)

e2e/npm_translate_lock_empty

All tests were cache hits

2 tests (100.0%) were fully cached saving 105ms.


Bazel 7 (Test)

e2e/npm_translate_lock_exclude_package_contents

1 test target passed

Targets
//:test_sh                                                                                             23ms

Bazel 8 (Test)

e2e/npm_translate_lock_exclude_package_contents

All tests were cache hits

1 test (100.0%) was fully cached saving 21ms.


Bazel 9 (Test)

e2e/npm_translate_lock_exclude_package_contents

All tests were cache hits

1 test (100.0%) was fully cached saving 86ms.


Bazel 7 (Test)

e2e/npm_translate_lock_multi

All tests were cache hits

2 tests (100.0%) were fully cached saving 60ms.


Bazel 8 (Test)

e2e/npm_translate_lock_multi

Buildkite build #12631 is running...


Bazel 9 (Test)

e2e/npm_translate_lock_multi

All tests were cache hits

2 tests (100.0%) were fully cached saving 113ms.


Bazel 7 (Test)

e2e/npm_translate_lock_partial_clone

1 test target passed

Targets
//root:test                                                                                            28ms

Bazel 8 (Test)

e2e/npm_translate_lock_partial_clone

All tests were cache hits

1 test (100.0%) was fully cached saving 30ms.


Bazel 9 (Test)

e2e/npm_translate_lock_partial_clone

All tests were cache hits

1 test (100.0%) was fully cached saving 38ms.


Bazel 7 (Test)

e2e/npm_translate_lock_replace_packages

4 test targets passed

Targets
//:node_modules_test [k8-fastbuild]                                                                    20ms
//:test [k8-fastbuild]                                                                                 80ms
//:utils_test [k8-fastbuild]                                                                           73ms
//:write_npm_translate_lock_bzlmod_test [k8-fastbuild]                                                 38ms

Bazel 8 (Test)

e2e/npm_translate_lock_replace_packages

All tests were cache hits

4 tests (100.0%) were fully cached saving 259ms.


Bazel 9 (Test)

e2e/npm_translate_lock_replace_packages

All tests were cache hits

4 tests (100.0%) were fully cached saving 297ms.


Bazel 7 (Test)

e2e/npm_translate_lock_subdir_patch

Buildkite build #12631 is running...


Bazel 8 (Test)

e2e/npm_translate_lock_subdir_patch

All tests were cache hits

1 test (100.0%) was fully cached saving 150ms.


Bazel 9 (Test)

e2e/npm_translate_lock_subdir_patch

All tests were cache hits

1 test (100.0%) was fully cached saving 55ms.


Bazel 7 (Test)

e2e/npm_translate_package_lock

1 test target passed

Targets
//:test                                                                                                26ms

Bazel 8 (Test)

e2e/npm_translate_package_lock

Buildkite build #12631 is running...


Bazel 9 (Test)

e2e/npm_translate_package_lock

Buildkite build #12631 is running...


Bazel 7 (Test)

e2e/npm_translate_yarn_lock

Buildkite build #12631 is running...


Bazel 8 (Test)

e2e/npm_translate_yarn_lock

Buildkite build #12631 is running...


Bazel 9 (Test)

e2e/npm_translate_yarn_lock

Buildkite build #12631 is running...


Bazel 7 (Test)

e2e/output_paths

1 test target passed

Targets
//:test [k8-fastbuild]                                                                                 91ms

Total test execution time was 91ms. 1 test (50.0%) was fully cached saving 41ms.


Bazel 8 (Test)

e2e/output_paths

Waiting for runner...


Bazel 9 (Test)

e2e/output_paths

Waiting for runner...


Bazel 7 (Test)

e2e/patch_from_repo

Buildkite build #12631 is running...


Bazel 7 (Test)

e2e/pnpm_lockfiles

59 test targets passed

Targets
//cases/docusaurus-direct-peer-v9:docusaurus_direct_with_peers [k8-fastbuild]                          60ms
//cases/isaacs-cliui-v90:isaacs_cliui [k8-fastbuild]                                                   40ms
//cases/multi-document-v11:multi_document_v11 [k8-fastbuild]                                           53ms
//cases/nested-peer-v9:nested_peers_targets [k8-fastbuild]                                             47ms
//cases/override-with-alias-url-v9:override-with-alias-url-v9 [k8-fastbuild]                           38ms
//cases/versionless-patch-v9:versionless_patch_targets [k8-fastbuild]                                  65ms
//cases/versionless-patch-v9:versionless_patch_test [k8-fastbuild]                                     157ms
//cases/workspace-peer-v9:optional_peers_targets [k8-fastbuild]                                        37ms
//v101:aliases-test [k8-fastbuild]                                                                     204ms
//v101:patch-test [k8-fastbuild]                                                                       89ms
//v101:repos_0_test [k8-fastbuild]                                                                     116ms
//v101:repos_10_test [k8-fastbuild]                                                                    67ms
//v101:repos_11_test [k8-fastbuild]                                                                    84ms
//v101:repos_12_test [k8-fastbuild]                                                                    55ms
//v101:repos_13_test [k8-fastbuild]                                                                    87ms
//v101:repos_1_test [k8-fastbuild]                                                                     125ms
//v101:repos_2_test [k8-fastbuild]                                                                     78ms
//v101:repos_3_test [k8-fastbuild]                                                                     56ms
//v101:repos_4_test [k8-fastbuild]                                                                     92ms
//v101:repos_5_test [k8-fastbuild]                                                                     82ms
//v101:repos_6_test [k8-fastbuild]                                                                     99ms
//v101:repos_7_test [k8-fastbuild]                                                                     51ms
//v101:repos_8_test [k8-fastbuild]                                                                     67ms
//v101:repos_9_test [k8-fastbuild]                                                                     85ms
//v101:targets [k8-fastbuild]                                                                          18ms
//v110:aliases-test [k8-fastbuild]                                                                     186ms
//v110:patch-test [k8-fastbuild]                                                                       236ms
//v110:repos_0_test [k8-fastbuild]                                                                     66ms
//v110:repos_10_test [k8-fastbuild]                                                                    70ms
//v110:repos_11_test [k8-fastbuild]                                                                    79ms
//v110:repos_12_test [k8-fastbuild]                                                                    81ms
//v110:repos_13_test [k8-fastbuild]                                                                    52ms
//v110:repos_1_test [k8-fastbuild]                                                                     89ms
//v110:repos_2_test [k8-fastbuild]                                                                     71ms
//v110:repos_3_test [k8-fastbuild]                                                                     61ms
//v110:repos_4_test [k8-fastbuild]                                                                     87ms
//v110:repos_5_test [k8-fastbuild]                                                                     87ms
//v110:repos_6_test [k8-fastbuild]                                                                     73ms
//v110:repos_7_test [k8-fastbuild]                                                                     68ms
//v110:repos_8_test [k8-fastbuild]                                                                     69ms
//v110:repos_9_test [k8-fastbuild]                                                                     83ms
//v110:targets [k8-fastbuild]                                                                          24ms
//v90:aliases-test [k8-fastbuild]                                                                      138ms
//v90:patch-test [k8-fastbuild]                                                                        116ms
//v90:repos_0_test [k8-fastbuild]                                                                      45ms
//v90:repos_10_test [k8-fastbuild]                                                                     82ms
//v90:repos_11_test [k8-fastbuild]                                                                     91ms
//v90:repos_12_test [k8-fastbuild]                                                                     118ms
//v90:repos_13_test [k8-fastbuild]                                                                     85ms
//v90:repos_1_test [k8-fastbuild]                                                                      89ms
//v90:repos_2_test [k8-fastbuild]                                                                      93ms
//v90:repos_3_test [k8-fastbuild]                                                                      94ms
//v90:repos_4_test [k8-fastbuild]                                                                      82ms
//v90:repos_5_test [k8-fastbuild]                                                                      73ms
//v90:repos_6_test [k8-fastbuild]                                                                      75ms
//v90:repos_7_test [k8-fastbuild]                                                                      55ms
//v90:repos_8_test [k8-fastbuild]                                                                      60ms
//v90:repos_9_test [k8-fastbuild]                                                                      102ms
//v90:targets [k8-fastbuild]                                                                           24ms

Bazel 8 (Test)

e2e/pnpm_lockfiles

Buildkite build #12631 is running...


Bazel 9 (Test)

e2e/pnpm_lockfiles

All tests were cache hits

17 tests (100.0%) were fully cached saving 2s.


Bazel 7 (Test)

e2e/pnpm_repo_install

3 test targets passed

Targets
//:pnpm_install_test                                                                                   2s
//:pnpm_install_test_v10                                                                               1s
//:pnpm_install_test_v11                                                                               2s

Bazel 8 (Test)

e2e/pnpm_repo_install

Buildkite build #12631 is running...


Bazel 9 (Test)

e2e/pnpm_repo_install

Buildkite build #12631 is running...


Bazel 7 (Test)

e2e/pnpm_version

Buildkite build #12631 is running...


Bazel 8 (Test)

e2e/pnpm_version

Waiting for runner...


Bazel 9 (Test)

e2e/pnpm_version

Buildkite build #12631 is running...


Bazel 7 (Test)

e2e/pnpm_workspace

All tests were cache hits

15 tests (100.0%) were fully cached saving 2s.


Bazel 8 (Test)

e2e/pnpm_workspace

Buildkite build #12631 is running...


Bazel 9 (Test)

e2e/pnpm_workspace

All tests were cache hits

14 tests (100.0%) were fully cached saving 2s.


Bazel 7 (Test)

e2e/pnpm_workspace_deps

Buildkite build #12631 is running...


Bazel 8 (Test)

e2e/pnpm_workspace_deps

All tests were cache hits

3 tests (100.0%) were fully cached saving 275ms.


Bazel 9 (Test)

e2e/pnpm_workspace_deps

Waiting for runner...


Bazel 7 (Test)

e2e/pnpm_workspace_rerooted

Waiting for runner...


Bazel 8 (Test)

e2e/pnpm_workspace_rerooted

All tests were cache hits

14 tests (100.0%) were fully cached saving 2s.


Bazel 9 (Test)

e2e/pnpm_workspace_rerooted

Buildkite build #12631 is running...


Bazel 7 (Test)

e2e/protobuf-es

Buildkite build #12631 is running...


Bazel 8 (Test)

e2e/protobuf-es

Buildkite build #12631 is running...


Bazel 9 (Test)

e2e/protobuf-es

Buildkite build #12631 is running...


Bazel 7 (Test)

e2e/protobuf-google

Buildkite build #12631 is running...


Bazel 8 (Test)

e2e/protobuf-google

Buildkite build #12631 is running...


Bazel 9 (Test)

e2e/protobuf-google

Waiting for runner...


Bazel 7 (Test)

e2e/repo_mapping

Waiting for runner...


Bazel 8 (Test)

e2e/repo_mapping

All tests were cache hits

3 tests (100.0%) were fully cached saving 156ms.


Bazel 9 (Test)

e2e/repo_mapping

Waiting for runner...


Bazel 7 (Test)

e2e/vendored_node

Waiting for runner...


Bazel 8 (Test)

e2e/vendored_node

Buildkite build #12631 is running...


Bazel 9 (Test)

e2e/vendored_node

Waiting for runner...


Bazel 7 (Test)

e2e/vendored_tarfile

Buildkite build #12631 is running...


Bazel 8 (Test)

e2e/vendored_tarfile

Waiting for runner...


Bazel 9 (Test)

e2e/vendored_tarfile

Waiting for runner...


Bazel 7 (Test)

e2e/verify_patches

Buildkite build #12631 is running...


Bazel 8 (Test)

e2e/verify_patches

Buildkite build #12631 is running...


Bazel 9 (Test)

e2e/verify_patches

Waiting for runner...


Bazel 7 (Test)

examples

83 test targets passed

Targets
//:linked_packages_build_test [k8-fastbuild]                                                           39ms
//coverage:coverage [k8-fastbuild]                                                                     135ms
//genrule:test_acorn [k8-fastbuild]                                                                    64ms
//genrule:test_require_acorn [k8-fastbuild]                                                            67ms
//js_binary:aspect_bin_a_test [k8-fastbuild]                                                           86ms
//js_binary:case7_test [k8-fastbuild]                                                                  192ms
//js_binary:npm_version_test [k8-fastbuild]                                                            380ms
//js_binary:test13-1_cjs [k8-fastbuild]                                                                56ms
//js_binary:test13-1_mjs [k8-fastbuild]                                                                57ms
//js_binary:test13-2_cjs [k8-fastbuild]                                                                44ms
//js_binary:test13-2_mjs [k8-fastbuild]                                                                52ms
//js_binary:test4-b_cjs [k8-fastbuild]                                                                 52ms
//js_binary:test4-b_mjs [k8-fastbuild]                                                                 37ms
//js_binary:test4-cjs-a [k8-fastbuild]                                                                 44ms
//js_binary:test4-mjs-a [k8-fastbuild]                                                                 53ms
//js_binary:test5_cjs [k8-fastbuild]                                                                   52ms
//js_binary:test5_mjs [k8-fastbuild]                                                                   57ms
//js_binary:test6 [k8-fastbuild]                                                                       43ms
//js_binary:test6_alt [k8-fastbuild]                                                                   63ms
//js_binary:test8 [k8-fastbuild]                                                                       59ms
//js_binary:test_cjs [k8-fastbuild]                                                                    84ms
//js_binary:test_exitcode [k8-fastbuild]                                                               60ms
//js_binary:test_js_binary_under_custom_rule [k8-fastbuild]                                            72ms
//js_binary:test_js_binary_under_custom_rule_local [k8-fastbuild]                                      49ms
//js_binary:test_js_binary_under_genrule_cjs [k8-fastbuild]                                            46ms
//js_binary:test_js_binary_under_genrule_mjs [k8-fastbuild]                                            43ms
//js_binary:test_js_binary_under_js_run_binary_cjs [k8-fastbuild]                                      57ms
//js_binary:test_js_binary_under_js_run_binary_local_cjs [k8-fastbuild]                                52ms
//js_binary:test_js_binary_under_js_run_binary_local_mjs [k8-fastbuild]                                56ms
//js_binary:test_js_binary_under_js_run_binary_mjs [k8-fastbuild]                                      59ms
//js_binary:test_js_binary_under_js_run_binary_no_copy_data_to_bin [k8-fastbuild]                      40ms
//js_binary:test_mjs [k8-fastbuild]                                                                    105ms
//js_binary:test_stderr [k8-fastbuild]                                                                 63ms
//js_binary:test_stdout [k8-fastbuild]                                                                 50ms
//js_lib_pkg/b:test_each_target [k8-fastbuild]                                                         135ms
//js_lib_pkg/b:test_parent_target [k8-fastbuild]                                                       140ms
//js_library/two:two_test [k8-fastbuild]                                                               129ms
//linked_consumer:direct [k8-fastbuild]                                                                103ms
//linked_consumer:pkg [k8-fastbuild]                                                                   125ms
//linked_consumer:sources_test [k8-fastbuild]                                                          51ms
//linked_consumer:types_test [k8-fastbuild]                                                            38ms
//linked_empty_node_modules:test [k8-fastbuild]                                                        39ms
//macro:test_all [k8-fastbuild]                                                                        508ms
//macro:test_cjs [k8-fastbuild]                                                                        716ms
//macro:test_esm [k8-fastbuild]                                                                        503ms
//macro:test_js [k8-fastbuild]                                                                         491ms
//nextjs:next_build_test [k8-fastbuild]                                                                52ms
//nextjs:write_next_links_defs_test [k8-fastbuild]                                                     74ms
//npm_deps/patches:patches_update_test [k8-fastbuild]                                                  76ms
//npm_deps:circular_deps_build_test [k8-fastbuild]                                                     55ms
//npm_deps:rollup_version_test [k8-fastbuild]                                                          227ms
//npm_deps:test1 [k8-fastbuild]                                                                        37ms
//npm_deps:test10_cjs [k8-fastbuild]                                                                   171ms
//npm_deps:test10_mjs [k8-fastbuild]                                                                   170ms
//npm_deps:test11_cjs [k8-fastbuild]                                                                   137ms
//npm_deps:test11_mjs [k8-fastbuild]                                                                   252ms
//npm_deps:test3 [k8-fastbuild]                                                                        89ms
//npm_deps:test4 [k8-fastbuild]                                                                        116ms
//npm_deps:test5 [k8-fastbuild]                                                                        45ms
//npm_deps:test5_alt [k8-fastbuild]                                                                    33ms
//npm_deps:test6 [k8-fastbuild]                                                                        116ms
//npm_deps:test7_a [k8-fastbuild]                                                                      161ms
//npm_deps:test7_b_cjs [k8-fastbuild]                                                                  128ms
//npm_deps:test7_b_mjs [k8-fastbuild]                                                                  215ms
//npm_deps:test8 [k8-fastbuild]                                                                        81ms
//npm_deps:test9_cjs [k8-fastbuild]                                                                    137ms
//npm_deps:test9_mjs [k8-fastbuild]                                                                    145ms
//npm_deps:test_peer [k8-fastbuild]                                                                    157ms
//npm_deps:test_uvu_version [k8-fastbuild]                                                             226ms
//package_json_module:test [k8-fastbuild]                                                              442ms
//runfiles:module_name_runfiles [k8-fastbuild]                                                         102ms
//runfiles:outer_runfiles [k8-fastbuild]                                                               263ms
//runfiles:run_outer_binary_asserts__direct_srcs [k8-fastbuild]                                        77ms
//runfiles:run_outer_binary_asserts__transitive_data [k8-fastbuild]                                    103ms
//runfiles:run_test_binary_asserts__direct_srcs [k8-fastbuild]                                         113ms
//runfiles:run_test_binary_asserts__transitive_data [k8-fastbuild]                                     128ms
//runfiles:runfiles [k8-fastbuild]                                                                     99ms
//stack_traces:stack_traces [k8-fastbuild]                                                             110ms
//stamped_package_json:stamp_test [k8-fastbuild]                                                       50ms
//vite3:build_test [k8-fastbuild]                                                                      56ms
//vite6:build_test [k8-fastbuild]                                                                      43ms
//webpack_cli:test [k8-fastbuild]                                                                      339ms
//worker:test_pi [k8-fastbuild]                                                                        89ms

Bazel 8 (Test)

examples

All tests were cache hits

81 tests (100.0%) were fully cached saving 14s.


Bazel 9 (Test)

examples

All tests were cache hits

81 tests (100.0%) were fully cached saving 14s.


Buildifier      Format

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented May 4, 2026

CLA assistant check
All committers have signed the CLA.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8e13346f88

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

assert_contains(
name = "run_tool_uses_exec_config_runfiles",
actual = ":run_tool_linux_arm64",
expected = "exec-config-data",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Make exec-config test independent of host CPU architecture

This assertion assumes the execution platform is never linux_arm64, but on ARM64 Linux runners the tool’s exec configuration will also match :linux_arm64_target, so target_config_marker.txt is selected and the expected exec-config-data string is wrong. That makes the new test fail on valid environments even when js_run_binary is behaving correctly; the check needs to force a distinct exec platform (or make the marker selection architecture-agnostic) to avoid host-dependent failures.

Useful? React with 👍 / 👎.

@longlho longlho force-pushed the fix-js-run-binary-exec-tool-runfiles branch 3 times, most recently from d1ab1c2 to 5b03c08 Compare May 4, 2026 13:23
@longlho longlho force-pushed the fix-js-run-binary-exec-tool-runfiles branch from 5b03c08 to 132d373 Compare May 4, 2026 13:30
@longlho longlho closed this May 4, 2026
@acozzette
Copy link
Copy Markdown
Contributor

I have been working on this same issue and came up with a fix similar to yours recently: #2809 However, I came to the realization that we probably should not try to "fix" use_execroot_entry_point to use exec-configured runfiles. The problem is that use_execroot_entry_point intentionally hoists runfiles in the target configuration, and the purpose is to be compatible with frameworks like Next.js. Next.js does pre-rendering, which involves running target-platform code during the build, so this inherently requires blurring the distinction between the exec and target platforms. So I think the best solution is to turn off use_execroot_entry_point in cases where it is not needed, and perhaps even make it default to False eventually. If you set use_execroot_entry_point = False, does that solve the problem for you?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants