0

我们使用 Hudson 进行构建和部署。目前我们有四个主要工作:BUILD、DEPLOY-DEV、DEPLOY-TEST 和 DEPLOY-PROD。

BUILD 作业是参数化的,因此我们可以分配新的版本号并使用 Hudson 管理的 BUILD_NUMBER 来扩充它们。这很好用。我们还有一个默认为 false 的“nightlybuild”参数。我们的意图是仅通过另一个 Hudson 工作来设置它。

我们正在尝试创建一个自动化的 NIGHTLY-BUILD 作业,它首先使用“nightlybuild”参数集调用我们的 BUILD 作业,一旦成功,就调用 DEPLOY-DEV 作业。我们还想调用 SONAR 作业来分析代码,但对于这个问题,两步解决方案就足够了。

对于 NIGHTLY-BUILD 作业,我能弄清楚的调用参数化作业的唯一方法是“在其他项目上触发参数化构建”的构建后操作。我无法直接触发 BUILD 作业,因为“nightlybuild”默认值为 false,而且我也不想触发任何 manula 构建。我还有一个 NIGHTLY-DEPLOY,它在 NIGHTLY-BUILD 上具有“构建其他项目后构建”的构建触发器。由于这些最终都是构建后操作,因此它们同时触发而不是连续触发。

Started by user anonymous
Triggering a new build of BUILD #49
Triggering a new build of NIGHTLY-DEPLOY #3
Triggering a new build of NIGHTTY-SONAR #3
[DEBUG] Skipping watched dependency update; build not configured with trigger: NIGHTLY-BUILD #5
Finished: SUCCESS

当我开始构建时,它会在几秒钟内完成并同时启动 BUILD 和 DEPLOY,因此在构建新版本时,正在部署旧版本。不是我想要的。

我查看并下载了“构建管道插件”,但看起来它只是依赖于自动转换的相同构建后操作,并为手动转换添加了新功能。

有人对如何解决此问题有任何建议吗?

4

1 回答 1

0

使用参数化触发器插件作为构建步骤,而不是构建后步骤。然后它可以选择等待下游构建完成。

注意:这适用于 Jenkins,我不能保证这个选项存在于插件的 Hudson 版本中。

于 2012-06-07T15:55:19.957 回答