用途:把 Megatron-LM 的 CI 迁移到更新的 nvcr.io/nvidia/pytorch:<YY.MM>-py3 容器。最常见失败是只改 GitHub CI 而漏掉 GitLab CI,导致 main 分支 GitLab CI 失败。
主要能力:提供端到端流程,包括更新两处固定点、开 PR、重跑 CI、刷新 golden 值、处理真实回归、合并前同步校验。
使用方式:
- 更新 GitHub CI 固定点:echo 'nvcr.io/nvidia/pytorch:<YY.MM>-py3' > docker/.ngc_version.dev。
- 更新 GitLab CI 固定点:在 .gitlab/stages/01.build.yml 的 parallel.matrix 中改两条 IMAGE_TYPE: dev 的 BASE_IMAGE 行(amd64 与 arm64)。
- 开 PR,标题如 chore: Update Docker image version to <YY.MM>-py3,并加 Run functional tests 标签。
- fork PR 每个新提交需评论 /ok to test <commit-sha>。
- golden 值漂移用 update-golden-values 技能刷新,参数 --source github、--pipeline-id <WORKFLOW_RUN_ID>、--only-failing。
- 真实回归(挂起、OOM、数值问题)在 tests/test_utils/recipes/<arch>/ 的 YAML 中把 scope 改为 mr-broken / mr-github-broken 并附 issue 链接,不要阻塞镜像升级。
- 合并前用 grep 确认两处固定点标签一致。
适用场景:Megatron-LM 仓库中仅升级 dev 基础镜像的维护任务。
限制:除非明确要求,不要动 docker/.ngc_version.lts 及 GitLab 中 FILE: Dockerfile.ci.lts 行;LTS 有独立节奏。不要手工改 golden JSON。mr-broken 是真实 scope,不要删除测试用例。