You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:42:39