仅在创建的标签具有特定格式时,我才希望在Jenkins中触发构建。我的代码在Gitlab中,现在它的工作方式是这样的。
当我在master
分支上创建标签时,Jenkins插件将触发staging
和prod
2种环境的作业。我正在使用refs/tags/${TAGNAME}
作为Jenkins作业内“分支指定符”(“ any”为空白)字段的参数。有时候,我需要在staging
上部署代码,但不必将其发布到prod
上,因此我必须手动禁用生产作业。我还使用TAGNAME
作为参数来手动部署特定标签。
我测试了是否可以使用正则表达式并使用staging
格式为v1.0.0-rc
和使用prod
格式为v1.0.0
创建标签。我创建了此正则表达式:^(?!.*(-rc)).*
,但是无论如何它都不会触发。然后我发现我需要包括TAGNAME
变量,但是现在正则表达式将始终触发,因为该变量包含来自Gitlab ex:v1.0.0-rc
如果要测试正则表达式,可以使用以下示例:
refs/tags/v1.0.1
refs/tags/v1.0.1-rc
refs/tags/v1.0.1^{commit}
refs/remotes/origin/refs/tags/v1.0.1^{commit}
refs/remotes/origin/refs/tags/v1.0.1-rc^{commit}
v1.0.1
v1.0.1-rc
它应该只匹配-rc
行。
但是在这一点上,我认为这不是最好的方法。有没有一种方法可以基于特定的标签命名来触发此操作?