执行摘要
- 一句话:AMD CI 内套件级 fast-fail 支持 bypass-fastfail 标签
- 推荐动作:这是一个经过深思熟虑的小型 CI 改进,与 NVIDIA 已有的模式一致。适合直接合并,无需深度审查。
功能与动机
AMD CI 用户抱怨第一个失败会掩盖后续信号:阶段 B 的第一个失败文件隐藏了同一分区中的其他文件,并且阻止阶段 C 运行。PR body 明确引用 issue,并解释了双层 fast-fail 机制(跨阶段和内套件)以及 NVIDIA 已有的 bypass-fastfail 标签处理方式。
实现拆解
- 定位文件:
.github/workflows/pr-test-amd.yml 中的 check-changes 作业的 Set continue-on-error for schedule/full runs 步骤。
- 新增环境变量:
BYPASS_FASTFAIL_LABEL,通过 ${{ contains(github.event.pull_request.labels.*.name, 'bypass-fastfail') }} 获取标签是否存在。
- 修改条件判断:在现有的
if 条件中增加 || "$BYPASS_FASTFAIL_LABEL" == "true" 分支,当标签存在时,continue_on_error 输出设为 true。
- 更新日志输出:调整
echo 信息以包含 bypass-fastfail 的状态,便于调试。
关键文件:
.github/workflows/pr-test-amd.yml(模块 CI配置;类别 infra;类型 infrastructure): 唯一更改的文件,在该文件中通过新增环境变量和修改条件判断,实现了 bypass-fastfail 标签对内套件级 fast-fail 的禁用。
关键符号:未识别
关键源码片段
.github/workflows/pr-test-amd.yml
唯一更改的文件,在该文件中通过新增环境变量和修改条件判断,实现了 bypass-fastfail 标签对内套件级 fast-fail 的禁用。
# .github/workflows/pr-test-amd.yml, check-changes 作业片段
- name: Set continue-on-error for schedule/full runs
id: set-continue-on-error
# 新增环境变量:读取 PR 是否带有 bypass-fastfail 标签
env:
BYPASS_FASTFAIL_LABEL: ${{ contains(github.event.pull_request.labels.*.name, 'bypass-fastfail') }}
run: |
# 原有条件:schedule 运行 或 手动触发时传递了 continue_on_error
# 新增第三个分支:当 bypass-fastfail 标签存在时也启用 continue-on-error
if [[ "${{ steps.run-mode.outputs.run_all_tests }}" == "true" \
|| "${{ inputs.continue_on_error }}" == "true" \
|| "$BYPASS_FASTFAIL_LABEL" == "true" ]]; then
echo "continue_on_error=true" >> $GITHUB_OUTPUT
echo "Continue-on-error: ENABLED (run_all_tests=${{ steps.run-mode.outputs.run_all_tests }}, input=${{ inputs.continue_on_error }}, bypass-fastfail=$BYPASS_FASTFAIL_LABEL)"
else
echo "continue_on_error=false" >> $GITHUB_OUTPUT
echo "Continue-on-error: DISABLED"
fi
评论区精华
无 review 评论。只有 gemini-code-assist 机器人自动回复,表示无法生成 review。
风险与影响
- 风险:风险极低:改动仅为 CI 工作流中一个步骤的条件表达式扩展,不影响任何运行时逻辑、性能或安全。如果
bypass-fastfail 标签被滥用,可能导致 CI 超时或资源浪费,但这是标签本身的预期行为。
- 影响:影响范围仅限于 AMD CI 的
pr-test-amd.yml,且仅在 PR 带有 bypass-fastfail 标签时生效。不影响 NVIDIA 或其他平台。用户可以看到完整的测试失败信息,便于调试。
- 风险标记:CI变更, 标签依赖
关联脉络
- PR #26566 ref: bypass-fastfail related change: PR body 中引用了该 PR 作为上下文,此 PR 是 AMD CI 中 bypass-fastfail 标签的跨阶段处理基础。
参与讨论