diff --git a/scripts/github/run-openclaw-cross-os-release-checks.sh b/scripts/github/run-openclaw-cross-os-release-checks.sh index b8a3e3541a42..783d3b9c7ab7 100755 --- a/scripts/github/run-openclaw-cross-os-release-checks.sh +++ b/scripts/github/run-openclaw-cross-os-release-checks.sh @@ -63,12 +63,14 @@ command -v "${npm_cmd}" >/dev/null 2>&1 || { if [[ ! -f "${loader_path}" ]]; then mkdir -p "${tool_dir}" + # The loader only needs tsx's packaged JS and esbuild platform package. + # Skipping lifecycle scripts avoids npm child-shell drift on Windows runners. if [[ -n "${npm_cli_js}" ]]; then - if ! "${node_cmd}" "${npm_cli_arg}" install --prefix "${npm_tool_dir}" --no-save --no-package-lock "tsx@${tsx_version}" >/dev/null; then + if ! "${node_cmd}" "${npm_cli_arg}" install --prefix "${npm_tool_dir}" --no-save --no-package-lock --ignore-scripts "tsx@${tsx_version}" >/dev/null; then echo "failed to install cross-OS release-check loader with ${node_cmd} ${npm_cli_arg}." >&2 exit 127 fi - elif ! "${npm_cmd}" install --prefix "${npm_tool_dir}" --no-save --no-package-lock "tsx@${tsx_version}" >/dev/null; then + elif ! "${npm_cmd}" install --prefix "${npm_tool_dir}" --no-save --no-package-lock --ignore-scripts "tsx@${tsx_version}" >/dev/null; then echo "failed to install cross-OS release-check loader with ${npm_cmd}." >&2 exit 127 fi diff --git a/test/scripts/openclaw-cross-os-release-workflow.test.ts b/test/scripts/openclaw-cross-os-release-workflow.test.ts index 022975fb1f6d..643024190e2b 100644 --- a/test/scripts/openclaw-cross-os-release-workflow.test.ts +++ b/test/scripts/openclaw-cross-os-release-workflow.test.ts @@ -43,6 +43,7 @@ describe("cross-OS release checks workflow", () => { expect(wrapper).toContain('loader_arg="$(cygpath -w "${loader_path}")"'); expect(wrapper).toContain('"${node_cmd}" "${npm_cli_arg}" install --prefix "${npm_tool_dir}"'); expect(wrapper).toContain('"${npm_cmd}" install --prefix "${npm_tool_dir}"'); + expect(wrapper.match(/--ignore-scripts/g)).toHaveLength(2); expect(wrapper).toContain('exec "${node_cmd}" --import "${loader_url}"'); }); });