Git 如何触发Jenkins基于标记的构建更新

Git 如何触发Jenkins基于标记的构建更新,git,github,jenkins,Git,Github,Jenkins,为了便于开发人员在测试环境中测试某个修订版,我希望jenkins构建一个特定的标记,只要它在Github上(强制)更新。我知道不建议强制更新标记,但至少比删除并重新创建分支要简单 我使用的是管道构建,带有构建配置。最重要的设置是: 存储库-高级 名称:origin 参考规范:+refs/tags/build/test 分支说明符:refs/tags/build/test 其他行为-高级克隆行为: 取回标签:是的 初始克隆上的荣誉参考规范:是 浅克隆 它拉取管道脚本。它有两个阶段,基本

为了便于开发人员在测试环境中测试某个修订版,我希望jenkins构建一个特定的标记,只要它在Github上(强制)更新。我知道不建议强制更新标记,但至少比删除并重新创建分支要简单

我使用的是管道构建,带有构建配置。最重要的设置是:

  • 存储库-高级
    • 名称:
      origin
    • 参考规范:
      +refs/tags/build/test
  • 分支说明符:
    refs/tags/build/test
  • 其他行为-高级克隆行为:
    • 取回标签:是的
    • 初始克隆上的荣誉参考规范:是
    • 浅克隆
它拉取管道脚本。它有两个阶段,基本上是:

  • 构建:
    mvn干净安装
  • 部署:
    输入消息:“构建在Testserver上工作吗?”,确定:“是”
这个建筑本身就很好。问题在于Git轮询/GitHub钩子。如果我(强制)更新标记,并且标记指向非主分支上的提交,则不会触发生成。或者,如果主版本的版本与标记的版本不同,则在手动触发生成后,它将进入无限生成循环

下面是一个例子,在我手动触发一个构建之后,它进入了一个无限循环。本摘录:

[poll] Last Built Revision: Revision 81db8cff7aee624510cfe6a5c806bdc8653d423c (refs/tags/build/test)
Ignoring refs/heads/with-gwt as it doesn't match any of the configured refspecs
Ignoring refs/heads/new_financial as it doesn't match any of the configured refspecs
[poll] Latest remote head revision on refs/heads/master is: 5d5173ea8d8b2f0621e25de9dd3202c3c2a195c4
Done. Took 8.2 sec
Changes found
显示最后生成的修订版本是
81db8cf
。此时的
build/test
标记也指向
81db8cf
,而master位于
5d5173e

从以下位置查看这一行:

很明显,Git轮询只关注分支。我希望它能做到以下几点:

git ls-remote -t -h git@github.com:fhackenberger/infostars.git | grep 'refs/tags/build/test'
所以问题是:在检查要构建的新修订时,我如何告诉Jenkins只轮询我的标签

PS:如果有人能给出更好的策略来解决我想要实现的目标,请放心;-)

git ls-remote -t -h git@github.com:fhackenberger/infostars.git | grep 'refs/tags/build/test'