【发布时间】:2018-10-05 04:37:59
【问题描述】:
在 Jenkins 中创建多分支管道后,我可以轻松地告诉它轮询任何分支的更改或添加,它会自动为这些分支创建工作并构建这些分支。我告诉 Multibranch 作业也发现标签,所以它会自动为每个标签创建作业,这很棒。
Jenkins 是否有一种干净的方式来自动构建这些标签,而不是我必须手动触发它们?正如你在下面看到的,标签的工作就在那里,但我必须手动构建它。
【问题讨论】:
在 Jenkins 中创建多分支管道后,我可以轻松地告诉它轮询任何分支的更改或添加,它会自动为这些分支创建工作并构建这些分支。我告诉 Multibranch 作业也发现标签,所以它会自动为每个标签创建作业,这很棒。
Jenkins 是否有一种干净的方式来自动构建这些标签,而不是我必须手动触发它们?正如你在下面看到的,标签的工作就在那里,但我必须手动构建它。
【问题讨论】:
我会对此发表评论,但我没有足够的声誉。我相信这是Jenkins Multi-branch pipeline doesn't schedule tag jobs 的副本。在那里查看我的答案,复制如下。
简而言之,如果您构建并安装了https://github.com/AngryBytes/jenkins-build-everything-strategy-plugin 上提供的 Jenkins 插件,那么您可以添加一个 Build Everything 策略,该策略将自动构建标签。
根据JENKINS-47496 的设计,不会自动触发已发现标签的构建似乎是设计使然。 Stephen Connolly 为您可能会做的事情提供了解释和建议:
Stephen Connolly 添加了一条评论 - 6 天前
默认情况下不会构建标签(因为否则您可能会拥有一个 签出存储库时构建风暴)更糟糕的是,订单标签 将被内置是不可预测的......你可能有一个 Jenkinsfile 在构建标签时部署到生产环境。
branch-api 中有一个名为 BranchBuildStrategy 的扩展点 其中 - 如果实施 - 将允许决定是否构建标签。
看 https://github.com/jenkinsci/github-branch-source-plugin/pull/158#issuecomment-332773194 关于如何创建这样一个扩展插件的起点......我 相信有一些工作在 https://github.com/AngryBytes/jenkins-build-everything-strategy-plugin
【讨论】:
正如@tommy-ludwig 所说,您需要一个额外的插件来提供构建策略;自从他最初的帖子以来,斯蒂芬康诺利已经发布了Basic Branch Build Strategies Plugin,其中包括a strategy to build tags。
【讨论】:
如果像我一样,您不关心标签是否显示在单独的选项卡上,您只希望标签在构建各种分支时可见(这意味着您的标签将被构建),那么这样做:
在您的多分支管道配置中,转到“分支源”、“Git”、“行为”,然后添加“高级克隆行为”。默认情况下,当你添加这个时,你会看到“获取标签”被选中。瞧!
【讨论】:
setuptools-scm),版本来自 git 标签 :)