Continuous integration 如何在詹金斯建立就业渠道?
在我的项目中,我有3个web应用程序,它们都依赖于一个Continuous integration 如何在詹金斯建立就业渠道?,continuous-integration,hudson,jenkins,Continuous Integration,Hudson,Jenkins,在我的项目中,我有3个web应用程序,它们都依赖于一个all commons项目 在我的Jenkins服务器中,我创建了4个作业,all-commons\u RELEASE,web-A\u RELEASE,web-B\u RELEASE和web-C\u RELEASE。 这些作业的作用是构建工件,这些工件部署在我们的Nexus上。然后,有人在Nexus中检索这些工件,并将它们部署到我们的开发/认证服务器上 我想要的是,有一个(额外的?)作业,以顺序的方式启动所有4个构建。 这样,一旦此作业完成,
all commons
项目
在我的Jenkins服务器中,我创建了4个作业,all-commons\u RELEASE
,web-A\u RELEASE
,web-B\u RELEASE
和web-C\u RELEASE
。
这些作业的作用是构建工件,这些工件部署在我们的Nexus上。然后,有人在Nexus中检索这些工件,并将它们部署到我们的开发/认证服务器上
我想要的是,有一个(额外的?)作业,以顺序的方式启动所有4个构建。
这样,一旦此作业完成,所有发布作业都已执行。
当然,如果一个构建失败,该过程将停止
我的第一个想法是在all-commons\u RELEASE
的构建后操作的构建其他项目列表中指出web-A\u RELEASE
。
然后,web-B_发布
依赖于web-A_发布
,依此类推
但是,我希望能够单独启动其中任何一个,如果我指出依赖于项目,这是不可能的。例如,如果我手动启动web-B_发行版
,那么web-C_发行版
将在此之后生成,这不是我想要的
你知道我怎样才能做到这一点吗,或者有一个插件可以帮助我做到这一点吗
问候
ps:Jenkins 1.430,所有发布作业都是自由风格的项目(它们混合了Maven和bash命令)。也许您可以使用
使用该插件,您可以将触发器设置为“管道”作业中的构建步骤。有一个复选框“阻止直到触发的作业完成”,您需要激活该复选框。您可以简单地将三个作业配置为以这种方式触发,并且只有在运行此新管道作业时才会发生触发,因此在不触发任何内容的情况下运行其他作业可以正常工作
这正是您需要的。不知道您是否已经找到了答案,但对于其他好奇的人: 您可以创建另一个job build_all,然后将其他每个构建作为构建步骤触发 对于build_all,您希望的设置如下所示,每个构建步骤都是“在其他项目上触发/调用构建”
- 构建步骤1:all-commons_发布
- 构建步骤2:web-A_发布
- 构建步骤3:web-B_发布
- 构建步骤4:web-C_发布
build("job1")
build("job2")
.
.
build("job-n")
顺便说一句,我已经尝试了buildpipeline插件(),但它对我没有帮助,因为它需要直接定义作业中的依赖项。或者可能我错过了这个插件中的一些东西?我们正在使用管道插件来解决上述情况,正如您所描述的。这些工作必须手动解雇。