【发布时间】:2018-11-19 13:41:30
【问题描述】:
说明
我设置了 Jenkins (2.126) 以在推送新标签时构建管道。具体来说,我想将master 上的现有提交标记为release-3 并让它触发构建。根据几个消息来源,我想要的是可能的:
不幸的是,当我标记现有提交并将其推送到 Git 存储库时,什么也没有发生。其他构建(由分支触发)按预期工作,并且有问题的标签触发构建在手动启动时成功完成。
根据一些人的说法,标签触发的管道应该从 2.3 版开始工作。有什么我可以配置使其工作的吗?
尝试截图
尝试在* * * * * 进行正常的管道轮询:
尝试使用多分支管道,扫描每个1 minute:
相关问题
我发现了与该问题相关的以下问题,应该可以解决。
- https://issues.jenkins-ci.org/browse/JENKINS-38921
- https://issues.jenkins-ci.org/browse/JENKINS-34176
- https://issues.jenkins-ci.org/browse/JENKINS-14917
- https://issues.jenkins-ci.org/browse/JENKINS-47077
- https://issues.jenkins-ci.org/browse/JENKINS-47891
- https://issues.jenkins-ci.org/browse/JENKINS-52376
【问题讨论】:
-
您使用的是哪种管道?它是多分支还是“普通独立”管道?最近 Jenkins 博客为此添加了一个帖子 - jenkins.io/blog/2018/05/16/pipelines-with-git-tags。它在多分支管道中运行良好,但是我还没有尝试过正常的管道工作。另外,你能分享一下你的管道吗?
-
@tftd 我的设置使用普通管道,设置与提供链接上的图片完全相同。完整资源可在github.com/Oduig/effective-ci-with-microservices 获得。我认为 Jenkinsfile 无关紧要,因为构建触发器发生在甚至读取文件之前。
-
嗯.. 或许你需要在 github 的 webhook 中启用
Branch or tag creation事件? -
@tftd 我想我可以使用 githooks,但无论存储库的类型如何,我都希望它可以工作。我们为不同类型的项目使用不同的服务器(工作中的 GitLab,私人事物的 BitBucket,操作系统的 GitHub)。我意识到我让它变得困难,但这个问题是故意笼统的:我可以在 Jenkins 中配置这种类型的行为而不求助于第三方工具吗?对我来说,这似乎不太可能支持多分支管道,但不支持单分支管道。
-
另外,请记住,当您使用普通管道(即“新作业 -> 管道”)时,您为 SCM 输入的设置实际上是在告诉 Jenkins 如何以及从何处检索Jenkinsfile 来构建项目。这与您设置
Branch sources或Source Code Management的多分支管道(或正常的jenkins 作业)中的设置完全不同。这可能是它不适用于“正常管道”的部分原因。