GitLab CI打Tag任务重复触发致失败,求助规则配置优化
解决GitLab CI标签任务重复执行问题
你的问题出在当前的rules配置会让任务在分支流水线和标签流水线中都触发。当你在分支流水线里创建并推送标签后,GitLab会自动触发一次标签流水线,此时再次执行add tag任务时,标签已经存在,导致失败。
要让这个任务仅执行一次,只需修改rules,限制任务只在非标签触发的分支流水线中运行:
add tag: extends: .install_dependencies stage: deploy image: name: nexus-docker.ship.gov.sg/python:latest entrypoint: ["/bin/bash"] script: - echo "This job deploys something from the $CI_COMMIT_BRANCH branch." - git tag -a v"$VERSION" -m version"$VERSION" - git push origin v"$VERSION" rules: - if: $CI_COMMIT_BRANCH && !$CI_COMMIT_TAG
关键说明:
$CI_COMMIT_BRANCH:仅在分支流水线中存在有效值,标签触发的流水线中该变量为空!$CI_COMMIT_TAG:排除标签流水线的触发场景——当流水线由标签触发时,$CI_COMMIT_TAG会被赋值为对应的标签名称,此条件会让任务跳过执行
这样配置后,只有当代码推送到分支时,add tag任务才会运行;标签触发的流水线会自动跳过这个任务,避免重复执行导致的失败。
内容的提问来源于stack exchange,提问作者Swe Zin Phyoe
相关产品推荐
相关产品推荐

