我希望每次推送匹配模式的标记时都能触发部署到特殊服务器。
我使用以下作业定义:
# ...
deploy to stage:
image: ruby:2.2
stage: deploy
environment:
name: foo-bar
script:
- apt-get update -yq
- apt-get install -y ruby-dev
- gem install dpl
# - ...
only:
- tags
现在我的问题是:如何将此限制为具有特定名称的标签,例如以" V"开头,以便我可以推送标签" V1.0.0&#34 ;并且有一定的工作在运行?
答案 0 :(得分:5)
Only
accepts regex patterns因此,对于您的用例,它将是:
only:
- /^V.*$/
except:
- branches
- triggers
答案 1 :(得分:2)
从 only / except are now being deprecated 开始,您现在应该更喜欢 rules
关键字
事情变得非常简单,下面是使用规则的等效项:
rules:
# Execute only when tagged starting with V followed by a digit
- if: $CI_COMMIT_TAG =~ /^V\d.*/
答案 2 :(得分:1)
最好的方法是通过与您的模式匹配的Gitlab CI / CD变量进行过滤
only
variables:
- $CI_COMMIT_TAG =~ /^my-custom-tag-prefix-.*/
CI_COMMIT_TAG
:提交标记名称。仅在构建标签时显示。