如何在GitLab CI/CD中禁用作业的重试/重新运行选项?
在GitLab CI/CD中禁用单个作业的手动重试按钮
你之前设置retry: 0没效果是因为这个配置仅控制作业失败后的自动重试次数,并不会隐藏手动触发的Retry按钮。要禁用单个作业的手动重试,需针对GitLab版本采用不同方案:
针对GitLab 14.10及以上版本(推荐)
GitLab 14.10新增了retry.manual配置项,直接设置为false即可禁用手动重试按钮,同时搭配max: 0关闭自动重试:
your_target_job: script: - # 你的作业执行脚本 retry: max: 0 manual: false
这个配置会同时关闭该作业的自动重试功能,并且隐藏流水线界面上的Retry按钮。
针对GitLab 14.10以下版本(变通方案)
旧版本没有retry.manual选项,可以通过GitLab API在作业完成后手动设置其不可重试。需要先在项目的CI/CD变量中配置具有api权限的GITLAB_TOKEN:
your_target_job: script: - # 你的作业执行脚本 - | # 调用API禁用当前作业的重试权限 curl --request PUT \ --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \ "$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/$CI_JOB_ID" \ --form "allow_retry=false" retry: 0
注意:这个方法需要确保GITLAB_TOKEN拥有足够的权限(至少能修改作业状态),且会增加作业的执行步骤。
内容的提问来源于stack exchange,提问作者Sam Pearce
相关产品推荐
相关产品推荐

