目标合并分支: master
问题
从 v1.14.0 的干净 Git 快照执行 Linux 官方构建入口时,如果 rust-msc-latest-linux 下载失败,init.sh 会继续执行;随后 only_make.sh 中 Ninja 编译失败后仍继续执行复制和报告命令,最终可能返回成功。
调用方因此不能在真实失败点得到非零退出,而是在后续运行 benchmark 或测试二进制时才看到“文件不存在”。
已复现链路
update-compiler.sh: rust-msc 下载失败
init.sh: rust-msc 不存在,API 头文件未生成
ninja: PikaCV_Filter.h、GTestTask.h 等生成头文件缺失
only_make.sh: 继续执行 cp 和报告命令
后续命令: build/benchmark/pikascript_benchmark 不存在
期望
- 代码生成器下载、API 生成、CMake、Ninja 任一步失败时,官方构建入口立即返回非零退出。
- stderr 保留首个实际失败原因。
- 成功路径行为、产物和架构不变。
- 增加覆盖“代码生成器不可用”和“Ninja 失败”的脚本级回归测试。
- 不把网络 fallback 或预置二进制写死进 PikaPython 源码。
关联证据
- pika_workspace benchmark job
d2502f9a0911 暴露该问题。
- workspace 已通过显式构建网络让
v1.14.0 benchmark 成功,但无法替代官方脚本的退出码修复。
目标合并分支: master
问题
从
v1.14.0的干净 Git 快照执行 Linux 官方构建入口时,如果rust-msc-latest-linux下载失败,init.sh会继续执行;随后only_make.sh中 Ninja 编译失败后仍继续执行复制和报告命令,最终可能返回成功。调用方因此不能在真实失败点得到非零退出,而是在后续运行 benchmark 或测试二进制时才看到“文件不存在”。
已复现链路
期望
关联证据
d2502f9a0911暴露该问题。v1.14.0benchmark 成功,但无法替代官方脚本的退出码修复。