【问题标题】:trigger jenkins job when a new tag is pushed without new code commit在没有新代码提交的情况下推送新标签时触发 jenkins 作业
【发布时间】:2019-04-17 19:30:29
【问题描述】:

如果新标签被推送到远程存储库,我想触发 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

对于标签 release-beta 已成功触发构建,但对于 release-prod 未成功触发。

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

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

【问题讨论】:

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


    【解决方案1】:

    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

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

    【讨论】:

      猜你喜欢
      • 2013-07-10
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 2019-02-23
      • 2012-12-20
      相关资源
      最近更新 更多