如何识别GitLab中被重试的流水线任务?是否有对应CI变量?
GitLab CI/CD 识别任务是否被重试的方法
一、专用CI变量:CI_JOB_RETRY_ATTEMPTS
这是GitLab官方提供的核心变量,专门用于识别任务的重试状态:
- 任务首次执行时,
CI_JOB_RETRY_ATTEMPTS的值为0; - 每手动重试一次任务,该变量数值递增1(例如第一次重试后值为
1,第二次重试后为2)。
你可以在Job的脚本逻辑中直接用这个变量判断任务是否被重试,示例代码:
if [ "$CI_JOB_RETRY_ATTEMPTS" -gt 0 ]; then echo "当前任务为重试执行,累计重试次数:$CI_JOB_RETRY_ATTEMPTS" fi
二、辅助识别方式
如果需要进一步关联原始任务或从UI层面验证:
- 每次重试会生成新的
CI_JOB_ID,原始失败任务的ID可结合CI_PIPELINE_ID通过GitLab API查询,但脚本内判断优先使用CI_JOB_RETRY_ATTEMPTS更高效; - UI层面,GitLab任务详情页会为重试任务显示“重试”标签,日志顶部也会标注重试次数的提示。
内容的提问来源于stack exchange,提问作者Anjan
相关产品推荐
相关产品推荐

