PR 26990 分析报告
执行摘要
本 PR 修复了手动触发的全量 CI 运行仍然存在的跨任务快速失败问题。通过在 _pr-test-stage.yml 的 SKIP_PR_TEST_HEALTH_CHECK 环境变量计算中补充 test_parallel_dispatch 和 run_all_tests 条件,使得手动全量调度与定时调度行为一致,都能收集所有失败而非快速失败。变更仅一行增删,风险极低。
功能与动机
作为 #26986 的后续,PR body 明确指出:手动触发的 run_all_tests 或 test_parallel_dispatch CI 调度中,跨任务快速失败检查(Layer 3)只会在 schedule 触发或设置 SKIP_PR_TEST_HEALTH_CHECK=true 时跳过。但 stage workflow 重新推导该环境变量时仅使用了 skip_pr_test_health_check,忽略了 run_all_tests / test_parallel_dispatch 标志,导致手动全量运行仍然快速失败,无法收集所有失败的测试。
实现拆解
-
修改环境变量计算逻辑:在 .github/workflows/_pr-test-stage.yml 中,将 SKIP_PR_TEST_HEALTH_CHECK 的环境变量定义从:
${{ fromJson(inputs.caller_inputs).skip_pr_test_health_check && 'true' || 'false' }}
改为:
${{ (fromJson(inputs.caller_inputs).skip_pr_test_health_check || fromJson(inputs.caller_inputs).test_parallel_dispatch || fromJson(inputs.caller_inputs).run_all_tests) && 'true' || 'false' }}
-
效果:当手动触发 run_all_tests 或 test_parallel_dispatch 调度时,SKIP_PR_TEST_HEALTH_CHECK 被设为 true,从而跳过快速失败,使得所有测试任务完成后统一报告结果。
- 配套改动:无。
评论区精华
无 review 讨论。
风险与影响
风险极低。仅涉及 CI 配置变更,不影响任何运行时逻辑。若表达式语法错误可能导致 CI 阶段异常,但已在 PR 中通过 CI 验证。影响范围仅限于手动触发的全量 CI 运行流程,变更后开发者能一次获取所有失败信息。
关联脉络
本 PR 是 #26986 的 follow-up,与 #26986 共同完善了手动全量 CI 运行的行为。
参与讨论