Gitlab只为特定的标签名称构建

Mag*_*erg 16 gitlab-ci

有没有办法指示管道只为匹配正则表达式的某些标签执行一个步骤?我想在1.2.3格式上推送标签时进行部署(例如)有没有办法做到这一点?

Jon*_*gat 23

这应仅针对不是与给定正则表达式匹配的分支的refs运行.

   job:
      only:
        - /^(\d+\.)?(\d+\.)?(\*|\d+)$/
      except:
        - branches
Run Code Online (Sandbox Code Playgroud)


ric*_*kot 17

您还可以利用规则

job:
  script: echo "Hello, World!"
  rules:
    - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+$/'
Run Code Online (Sandbox Code Playgroud)

  • 由于“only”和“ except”并未得到积极开发。规则是控制何时将作业添加到管道的首选关键字。`([来源](https://docs.gitlab.com/ee/ci/yaml/#only-- except))它出现[规则](https ://docs.gitlab.com/ee/ci/yaml/#rules)现在是要走的路。 (4认同)

Ruf*_*nus 11

是的,您可以使用以下only选项执行此操作:

job:
  # use regexp
  only:
    - /^issue-.*$/


job:
  # use special keywords
  only:
    - tags
    - triggers
    - schedules
Run Code Online (Sandbox Code Playgroud)

请参阅https://docs.gitlab.com/ee/ci/yaml/#only-and-except-simplified

  • 当我刚刚研究了gitlab的一些CD/CI功能时,我来了.谨防一个"功能":只能不能组合正则表达式和特殊单词,所以只有: - /^issue-.*$/ - 标签将触发任何标签_and_任何标签,分支,......以"问题"开头 - ".据我所知,没有办法限制正则表达式只用于标签或只用于分支(纠正我,如果我错了 - 我真的希望有人这样做!). (7认同)
  • 您可能是说-将其与`除外:-分支'相结合 (2认同)