Skip to content

Linux 构建脚本会吞掉代码生成和 Ninja 失败 #376

Description

@pikasTech

目标合并分支: 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 成功,但无法替代官方脚本的退出码修复。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions