在我的项目中,我有3个网络应用程序,全部依赖于一个all-commons
项目。
在我的Jenkins服务器中,我构建了4个作业all-commons_RELEASE
,web-A_RELEASE
,web-B_RELEASE
和web-C_RELEASE
。
这些工作的作用是构建部署在Nexus上的工件。然后,有人在Nexus中检索这些工件并将它们部署在我们的开发/认证服务器上。
我想要的是,有一个(额外的?)作业将以顺序方式启动所有4个版本。 这样,一旦完成此作业,所有RELEASE作业都已执行。 当然,如果一个构建失败,则该过程停止。
我的第一个想法是在web-A_RELEASE
的构建后操作的构建其他项目列表中指出all-commons_RELEASE
。
然后,web-B_RELEASE
依赖于web-A_RELEASE
,依此类推。
但是,我希望能够单独启动它们,如果我指出对项目的依赖性,这是不可能的。例如,如果我手动启动web-B_RELEASE
,那么之后会构建web-C_RELEASE
,这不是我想要的......
你知道我是如何实现这一目标的,还是一个帮助我做到这一点的插件?
问候。
ps:Jenkins 1.430,所有RELEASE作业都是自由式项目(它们混合了Maven和bash命令)。
答案 0 :(得分:3)
也许您可以使用Parametrized Trigger Plugin?
使用该插件,您可以将触发器设置为“管道”作业中的构建步骤。有一个复选框“阻止直到触发的作业完成”,您需要激活该复选框。您可以简单地将这三个作业配置为以这种方式触发,并且只有在运行此新管道作业时才会触发,因此运行其他作业而不触发任何操作都可以正常工作。
这应该是你所需要的。
答案 1 :(得分:2)
不知道你是否已找到答案,但对于其他好奇的人来说:
您可以创建另一个作业 build_all ,然后将每个其他构建作为构建步骤触发。
您想要的设置对于 build_all 看起来像这样,每个构建步骤都是“在其他项目上触发/调用构建”
确保选中“阻止直到触发的项目完成构建”选项,以确保构建顺序发生。
答案 2 :(得分:1)