Jenkins多分支管道并指定上游项目

时间:2016-07-19 01:13:04

标签: jenkins jenkins-pipeline

我们目前使用Jenkins作业DSL在每个Git分支基础上生成大量Jenkins作业;多分支管道插件看起来像是一种有趣的方式,可以使用Jenkinsfiles获得一流的作业生成支持,并减少我们维护的作业DSL数量。

例如,我们有 libwidget-server widget-server 开发分支项目。当libwidget-server构建完成后,触发widget-server作业(对于develop分支)。这也适用于其他分支。

这使得Build after other projects are built在完成上游构建时使用(例如libwidget-server导致构建widget-server)。

似乎多分支管道插件缺少Build after other projects are built设置 - 我们如何在多分支管道构建中完成上述操作?

2 个答案:

答案 0 :(得分:11)

您应该将分支名称添加到上游作业(假设您正在为上游作业使用多分支管道)。

假设您有一个包含两个作业的文件夹,这两个作业都是多分支管道作业:jobAjobB; jobB jobA之后master会触发jobB

您可以将此代码段添加到properties([ pipelineTriggers([ upstream( threshold: 'SUCCESS', upstreamProjects: '../jobA/master' ) ]) ]) 的Jenkinsfile:

jobB

(请注意jobA的任何分支都会在Previewsize的主人之后触发!)

答案 1 :(得分:4)

我目前正在尝试将此功能用于我们的部署。 我最接近的是将下面的内容添加到下游Jenkins文件中;

python manage.py makemigrations my_app_name

至少让Jenkins承认它应该在什么时候触发 'some_project'得到了构建,即它出现在“查看配置”页面中。

然而到目前为止,'some_project'的构建仍然不会触发下游 按预期进行项目。

话虽如此,也许你会有更多的运气。 让我知道它是否适合你。

(其他人在此问了一个类似的问题 - > Jenkins: Trigger Multi-branch pipeline on upstream change