continuous-integration - TeamCity 中依赖项的无修订同步的复合构建
问题描述
我正在尝试设置一个管道,用于针对拉取请求运行各种测试到我的存储库中。存储库是由 Bitbucket Server 托管的 git 存储库,TeamCity 是 Enterprise 2019.1.5(内部版本 66605)。该任务有几个关键方面:
- 有很多测试。一种方法或其他测试应并行运行以实现合理的执行时间。测试已经划分为单独的 TeamCity 构建配置,每个都有足够好的执行时间。
- 可用于该任务的构建代理要少得多,因此特定构建在构建队列中花费相当长的时间(最多 1-2 小时)并非不可能。
- 测试结果应作为单个聚合值报告给 Bitbucket。即,如果从 p.1 开始有 3 个单独的构建,其中两个通过,一个失败,那么 Bitbucket 应该收到单个“失败”构建状态。
- 理想情况下,管道应该由功能分支更改触发(Bitbucket 术语中的 refs/pull-requests/123/from),但功能分支的结帐合并到目标分支(Bitbucket 术语中的 refs/pull-requests/123/merge) .
鉴于上述要求,我尝试了 Composite Build Configuration ( https://www.jetbrains.com/help/teamcity/composite-build-configuration.html ),因为它似乎非常适合这项工作。因此,我使用 p.1 中的正确构建作为快照依赖项、“拉取请求”和“提交状态发布者”构建功能设置了单个复合构建。它完美地工作,除了一件事......
我似乎无法解决的唯一问题是,当构建链添加到构建队列时,依赖项中的 VCS 根会收集更改。这意味着由于 p.2(在构建队列中花费的最大时间不可忽略),一些构建最终会针对有点过时的源运行。理想情况下,我希望能够针对最新源运行构建。
所以我的问题是是否有任何方法可以禁用依赖项的修订同步?或者也许我可以在不使用快照依赖项的情况下以完全不同的方式解决整个问题?
在社区论坛交叉发布:https ://teamcity-support.jetbrains.com/hc/en-us/community/posts/360006745840
解决方案
推荐阅读
- c++ - MyType 允许 std::atomic 的确切要求是什么
? - json - 如何将 XML 数据复制到 JSON,同时将 XML 字段重命名为 JSON 化样式
- javascript - 如何制作对象数组的搜索框以区分大小写且不包含空格
- docker - 如何向 OpenShift / Kubernetes 部署提供环境信息(如外部服务 URL 或密码)?
- java - Docker 构建命令在 Google Cloud Shell 中挂起,没有任何消息
- swift - 返回数组的函数
- powerbi - 阻止所有页面 -> 页面 -> 可视化过滤器应用
- google-apps-script - 使用 Google App Script 阅读 Gmail 标签中的所有邮件
- python - Pycharm“优化导入”导致项目错误
- flutter - 使用dependOnInheritedWidgetOfExactType 代替inheritFromWidgetOfExactType 以获得颤振常量最佳实践