teamcity - 如何仅在需要时触发昂贵的构建步骤?

标签 teamcity

我有一个具有以下构建配置的 TeamCity 项目:

  • 收集依赖(昂贵)
  • 构建
  • 测试
  • 部署

  • 假设我知道我是否需要通过更改某个文件来执行此操作 deps.txt .

    这是我想要做的:
  • 我想在版本控制中的所有更改上触发构建。
  • deps.txt发生了变化,我想运行构建 1,然后是 2,然后是 3,然后是 4。
  • deps.txt没有改变,我想运行构建 2 然后 3 然后 4。

  • 我尝试在构建配置上放置触发器,如下所示:
  • VCS 在没有签到时触发,除非 +:deps.txt
  • VCS 触发所有签到,除非 -:deps.txt
  • 快照依赖于 2,当 2 完成构建时触发
  • 快照依赖于 3,当 3 完成构建时触发

  • 但是如果提交包含更改 deps.txt 和其他文件,则配置 1 和 2 同时触发,这意味着配置 2 将失败。

    在 TeamCity 中是否有一种简单的方法可以做到这一点?

    最佳答案

    我想建议一种不同的方法:

    一种。创建重复的构建配置

    湾从上次构建触发整个构建链。

    第一个构建配置链:

  • 收集依赖:无触发器
  • 构建:快照和工件依赖于同一构建链上的 1,无触发器
  • 测试:快照和工件依赖于同一构建链上的 2,无触发器
  • 部署:快照和工件依赖于同一链上的 3,VCS 触发在 +:deps.txt

  • 第二条构建配置链:
  • 构建:上次成功构建时快照和工件依赖于 1,无触发器
  • 测试:快照和工件依赖于同一链上的 5,没有触发器
  • 部署:快照和工件依赖于同一链上的 6 个,VCS 在任何更改时触发 -:deps.txt

  • 为了减少重复,您可以使用 2 和 5、3 和 6、4 和 7 的模板。

    关于teamcity - 如何仅在需要时触发昂贵的构建步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45971745/

    相关文章:

    jasmine - PhantomJS 在 TeamCity 中抛出 "Unable to access network"

    visual-studio-2008 - TeamCity 环境变量

    c# - 如何在 Teamcity 上使用 ApprovalTests?

    web - 服务器重启后 TeamCity 停止工作?

    c# - TeamCity 不会创建发布文件夹

    git - TeamCity 构建不运行新的 XUnit 测试

    teamcity - TeamCity 是否支持执行其他 TeamCity 构建的构建步骤?

    javascript - 在 TeamCity 上为 Karma 配置代码覆盖率报告

    teamcity - 触发选项来设置特定的构建参数?

    git - 是否可以在服务器端 checkout 期间指定 git.exe 位置