在没有提交新代码的情况下推送新标签时触发jenkins作业

时间:2019-04-17 07:56:47

标签: git jenkins github continuous-deployment git-tag

如果将新标签推送到远程存储库,我想触发jenkins构建。我看到过很多帖子,但似乎没有一个对我有用。当我在其中推送具有新提交的标签时,构建成功触发,但是如果在旧提交中推送新标签,则不会触发构建。

我已经在Jenkins中使用git插件配置了它,并将Refscpec值添加为+refs/tags/*:refs/remotes/origin/tags/*,并将分支指定符添加为*/tags/*

现在,如果我跑步:

git push origin master
git tag release-beta
git push origin release-beta
git tag release-prod
git push origin release-prod

已成功触发代码发布beta版的构建,但未成功触发发布prod。

这意味着jenkins始终在寻找提交ID,如果有一个与标签链接的新提交ID,它将构建作业。

我想将我的代码合并到master分支,将其标记为“ release-beta”并部署到beta管道。 Beta测试完成后,我想将相同的代码标记为“ release-prod”,并从相同的jenkins作业中部署生产管道。

1 个答案:

答案 0 :(得分:0)

https://github.com/jenkinsci/generic-webhook-trigger-plugin可能值得一看,因为它应该允许您仅通过过滤ref(例如^(refs/tags/.+)$)来触发标记的构建:

{
  "before": "1848f1236ae15769e6b31e9c4477d8150b018453",
  "after": "5cab18338eaa83240ab86c7b775a9b27b51ef11d",
  "ref": "refs/heads/develop"
}

这将涉及从您的存储库管理器创建一个Webhook触发器到http:// $ YOUR_JENKINS_HOME_URL / jenkins / generic-webhook-trigger / invoke?token = abc123 并且当然假设您的存储库管理器首先支持Webhooks。


不幸的是,关于通过git-plugin提供的本机支持,这目前是一个未解决的问题:https://issues.jenkins-ci.org/browse/JENKINS-14917

enter image description here

还有一个相应的SO问题,它具有更多细节和吸引力:Trigger a Jenkins pipeline by tagging an existing commit

相关问题