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

需求:仅当存在新标签时触发GitLab-CI流水线(附现有配置)

配置GitLab-CI仅在新标签创建时触发流水线

我来帮你调整GitLab-CI配置,实现仅当新标签推送时触发流水线的需求。下面是修改后的完整配置,关键调整点我会逐一说明:

before_script:
  - echo %CI_BUILD_REF%
  - echo %CI_PROJECT_DIR%
stages:
  - createPBLs
  - build
  - package

createPBLs:
  stage: createPBLs
  script:
    - xcopy /y /s "%CI_PROJECT_DIR%" "C:\Bauen\"
    - cd "C:\Bauen\"
    - ./run_orcascript.cmd
  only:
    - tags

build:
  stage: build
  script:
    - cd "C:\Bauen\"
    - ./run_pbc.cmd
  only:
    - tags
  except:
    - master

build_master:
  stage: build
  script:
    - cd "C:\Bauen\"
    - ./run_pbcm.cmd
  only:
    - tags
    - master

package:
  stage: package
  script:
    - cd "C:\Bauen\"
    - ./cpfiles.cmd
  only:
    - tags
  artifacts:
    # 替换为你实际的产物配置,比如路径、过期时间等
    paths:
      - C:\Bauen\output\*
    expire_in: 1 week

关键改动说明

  • 给每个任务(job)都添加了only: tags配置:这是实现需求的核心,GitLab-CI只会在检测到新标签被推送到仓库时,触发带有这个配置的任务。
  • 保留了你原有的分支区分逻辑:针对master分支的标签和其他分支的标签,分别触发build_master和build任务。如果不需要区分分支标签,你可以删掉build里的except: master和build_master里的master,让两个任务仅受标签触发控制(不过这种情况建议合并成一个任务,避免冲突)。
  • 补充了artifacts的示例配置:你可以把这部分替换成自己原本的产物设置,比如指定输出文件路径、过期时间等。

额外小技巧

如果你只想让特定格式的标签触发流水线(比如v1.0.0这类版本号标签),可以用正则表达式匹配,比如把only: tags改成:

only:
  - /^v\d+\.\d+\.\d+$/

这样只有符合v+数字.数字.数字格式的标签才会触发流水线,更精准控制触发条件。

内容的提问来源于stack exchange,提问作者Hendouz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:25:18