我们希望使用Jenkins在特定项目里程碑上生成版本/部署。当标记被推送到Git存储库时,是否可以触发Jenkins管道(在Jenkinsfile或Groovy脚本中定义)?
我们托管私有Gitlab服务器,因此Github解决方案不适用于我们的情况。
答案 0 :(得分:3)
目前这是管道/多分支工作流程中非常缺乏的东西。在此处查看此处的票证:https://issues.jenkins-ci.org/browse/JENKINS-34395
如果您不反对使用发布分支而不是标签,您可能会发现更容易。例如,如果您决定将所有以release-
开头的分支视为"发布分支",则可以... ...
if( env.BRANCH_NAME.startsWith("release-") ) {
// groovy code on release goes here
}
如果您需要使用release-
之后的名称,例如release-10.1
转为10.1
,只需创建一个类似的变量......
if( env.BRANCH_NAME.startsWith("release-") ) {
def releaseName = env.BRANCH_NAME.drop(8)
}
这些都可能需要一些方法白名单才能发挥作用。
答案 1 :(得分:0)
我有同样的愿望并自己推动,也许不是很漂亮,但它有效......
在您的管道工作中,标记"此项目已参数化"并为您的标记添加参数。然后在管道脚本中签出标签(如果它存在)。
创建一个运行脚本的自由式作业:
答案 2 :(得分:0)
如果您使用多分支管道,则有一个发现标签。使用那个 plus Spencer 解决方案