【问题标题】:How do I re-run a build?如何重新运行构建?
【发布时间】:2017-11-08 20:21:46
【问题描述】:

我们所有的 Jenkins 作业都配置为在存储库中的所有分支上构建更改。有时我们想要重新运行针对特定提交运行的特定构建。

  • 构建失败,因为某些外部资源不可用,我们希望在资源再次启动后重新运行该提交;
  • 作业依赖于内部包,我们需要能够重新构建特定分支以获取该包的最新版本。

但是,Jenkins 的“立即构建”命令是基于上次构建的分支构建的。它不允许用户选择要构建的分支。为了重建分支,用户必须提交并将更改推送到该分支。

是否有允许用户重新运行特定构建或选择要构建的分支的插件?如果您使用过 TeamCity,我想要“以相同的方式重新运行修订”功能。

我们已经尝试了 Naginator 和 Rebuilder 插件。 Naginator 仅允许您重建失败的构建,但也至少自动重新构建失败的构建一次(不可取)。重建器总是重建最后一次提交。它的行为就像“立即构建”按钮。

【问题讨论】:

    标签: jenkins continuous-integration jenkins-pipeline jenkins-plugins


    【解决方案1】:

    Rebuild 插件可能是最接近您想要的插件,但是您发现它只会获得 HEAD 而不是特定的 git 版本。

    这是一个开放的feature request

    对此question 的评论指出了同样的事情。

    尽管如此,我仍然建议您或许应该重新考虑依赖 git 修订来驱动构建结果的想法。您应该想要构建 HEAD。

    【讨论】:

    • 我不同意构建 HEAD 的要求,尤其是在持续部署场景中。
    • 对上述评论+1。在持续部署场景中,您可能希望构建一些固定的东西,比如标签或哈希,而不是像 HEAD 这样的流动性东西,它可能变化得足够快,以至于很难知道实际正在构建什么。
    猜你喜欢
    • 2019-08-24
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 2019-09-18
    相关资源
    最近更新 更多