当 git 标签不以字符串 "Release" 或 "Test" 开头时,仅在 Gitlab CI 中启动管道

Only start pipeline in Gitlab CI when git tag does not start with String "Release" or "Test"

仅当不存在 git 标签或 git 标签不是“Release_...”或“Test_...”时,我才需要开始构建作业。这是我的 .gitlab-ci.yml 测试:

dev:
  rules: 
    - if: '$CI_COMMIT_TAG != /^Test_.*/ && $CI_COMMIT_TAG != /^Release_.*/' 
  script:
    - echo "dev"


test:
  rules: 
    - if: '$CI_COMMIT_TAG =~ /^Test_.*/'
  script:
    - echo "test"


prod:
  rules: 
    - if: '$CI_COMMIT_TAG =~ /^Release_.*/'
  script:
    - echo "prod"

如果我添加 git 标记 Release_2021-3.0.0devprod 构建作业就会启动。仅应启动 prod 构建作业。开发构建作业的规则有什么问题?

要检查变量是否与正则表达式不匹配,您应该使用 !~ (GitLab documentation)


在您的具体示例中,您需要修复 dev 阶段:

dev:
  rules: 
    - if: '$CI_COMMIT_TAG !~ /^Test_.*/ && $CI_COMMIT_TAG !~ /^Release_.*/' 
  script:
    - echo "dev"

然后只有 prod 作业会在 Release_2021-3.0.0 标签上启动。
您可以查看小项目示例 here