【问题标题】:Atlassian Bamboo: don't trigger build if changes were made to a specific fileAtlassian Bamboo:如果对特定文件进行了更改,则不触发构建
【发布时间】:2014-04-08 08:15:33
【问题描述】:

我在 Bamboo 中有一个计划,只要对附加的存储库进行更改(通过轮询),就会启动该计划。

现在,在每次构建时,如果成功,则会在 repo 中更新一个 CHANGELOG 文件,进而触发另一个构建。如何从 Bamboo 的轮询中省略某些文件,以便在发现这些文件的更改时不会启动构建?因为否则,我进入无限循环,对 CHANGELOG 的更改会触发另一个构建,该构建又会更新 CHANGELOG 等等。

如果这不可能,还有哪些其他可行的解决方案?是否可以在构建开始之前在某处附加一个 shell 脚本来检查是否需要开始一个新的构建?

【问题讨论】:

    标签: bamboo


    【解决方案1】:

    事实证明,这比我想象的要简单。在计划配置中,在存储库选项卡中,在每个存储库的高级下,有一个包含/排除文件输入,您可以在其中自定义 Bamboo 用于检测更改的文件。通过在此处添加正则表达式,我解决了所有问题并按预期工作。

    竹纹匹配参考:https://confluence.atlassian.com/display/BAMBOO/Pattern+matching+reference

    【讨论】:

    • 等等。那么这是一个 java/posix 正则表达式还是只是一个 ant 模式?我的 Bamboo 6.10.4 说的是正则表达式,而你指的是 ant 语法。
    【解决方案2】:

    Bamboo Documentation 说:

    如果本地工作副本和 存储库副本具有相同的修订号。

    这可能不是最好的解决方案,但您可以在作业/构建结束时添加一个额外的任务,它会再次更新存储库以避免触发新的构建。

    我不确定这是否会跳过当前构建期间发生的存储库更新中的构建。

    【讨论】:

    • 这是个好主意,但不幸的是,出现了两个问题:如果在构建过程中发生提交,以及在作业结束时添加额外的源代码检查任务,构建仍然会触发,测试结果被删除,因此 junit 解析器任务失败导致构建失败。
    • 我不完全理解第一个问题。为什么这是个问题?你不能在junit解析器任务之后运行额外的源代码检查吗?
    • 第一个问题是您在最后一句话中提到的问题。如果我从当前构建中提交某些内容,无论我是否在作业结束之前添加额外的源代码检查任务,都会触发另一个。关于另一个,不,我不能,因为当我进行第二次源代码检查时,所有东西都被删除了(因为我必须强制进行干净的构建),测试结果也是如此。如果没有要解析的结果,junit 任务就会失败,构建也会失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2020-10-05
    • 2021-04-24
    • 1970-01-01
    • 2019-10-17
    • 2011-10-08
    相关资源
    最近更新 更多