【问题标题】:Consecutive Job Execution in Hudson哈德逊的连续作业执行
【发布时间】:2012-06-07 13:41:45
【问题描述】:

我们使用 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,因此在构建新版本时,正在部署旧版本。不是我想要的。

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

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

【问题讨论】:

    标签: continuous-integration hudson


    【解决方案1】:

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

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

    【讨论】:

    • 这是有道理的。我一直在寻找一个实际的构建步骤来调用另一个构建或参数化构建,但它不存在。 Hudson 上的插件版本是 2.4(差不多 2 岁)。我必须看看在同一个盒子上建立一个 Jenkins 实例需要什么。
    • 我仍然希望有一个基于 Hudson 的解决方案
    • 不允许您使用 Jenkins 的企业限制?
    • 没有公司限制,只有带宽限制,并且普遍担心将 CI 服务器从 Hudson 更新到 Jenkins 会导致构建中断并可能影响计划。我们实际上试图将 Jenkins 与 Hudson 并排设置,这造成了巨大的混乱。一旦尘埃落定,我将安装一个单独的 Tomcat 实例并在那里加载 Jenkins,然后尝试一次迁移一两个项目。
    • 带宽限制是指人的带宽,而不是任何技术服务器限制。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 2011-09-25
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 2011-08-12
    相关资源
    最近更新 更多