繁体   English   中英

如何在詹金斯建立一个工作流程?

[英]How to build a pipeline of jobs in Jenkins?

在我的项目中,我有3个web应用程序,都依赖于一个all-commons项目。

在我的Jenkins服务器中,我构建了4个作业, all-commons_RELEASEweb-A_RELEASEweb-B_RELEASEweb-C_RELEASE 这些工作的作用是构建部署在Nexus上的工件。 然后,有人在Nexus中检索这些工件并将它们部署在我们的开发/认证服务器上。

我想要的是,有一个(额外的?)工作将按顺序启动所有4个版本。 这样,一旦完成此作业,所有RELEASE作业都已执行。 当然,如果一个构建失败,则该过程停止。

我的第一个想法是在all-commons_RELEASEPost-build ActionsBuild other projects列表中指出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命令)。

也许您可以使用参数化触发插件

使用该插件,您可以将触发器设置为“管道”作业中的构建步骤。 有一个复选框“阻止直到触发的作业完成”,您需要激活该复选框。 您可以简单地将这三个作业配置为以这种方式触发,并且只有在运行此新管道作业时才会触发,因此运行其他作业而不触发任何操作都可以正常工作。

这应该是你需要的。

不知道你是否已找到答案,但对于其他好奇的人:

您可以创建另一个作业build_all ,然后将每个其他构建作为构建步骤触发。

您想要的设置对于build_all看起来像这样,每个构建步骤都是“在其他项目上触发/调用构建”

  • 构建第1步:all-commons_RELEASE
  • 构建第2步:web-A_RELEASE
  • 构建第3步:web-B_RELEASE
  • 构建第4步:web-C_RELEASE

确保选中“阻止直到触发的项目完成其构建”选项,以确保构建按顺序发生。

试试这个

Build Flow插件

你可以按顺序运行或构建你的工作:

build("job1")
build("job2")
.
.
build("job-n")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM