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

问题描述 投票:0回答:1

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

我在Jenkins中使用git插件配置它,并将refscpec值添加为+refs/tags/*:refs/remotes/origin/tags/*,将Branch说明符添加为*/tags/*

现在,如果我跑:

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

构建成功触发标签发布 - 测试版但不适用于发布产品。

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

我想将我的代码合并到master分支,将其标记为'release-beta'并部署到beta管道。一旦beta测试完成,我想标记与'release-prod'相同的代码,并从同一个jenkins作业部署生产管道。

git jenkins github continuous-deployment git-tag
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.