是否可以防止 TeamCity 中的构建链被中断?

2023-11-30

我在 TeamCity 7.1.3 中进行了以下设置:

项目A

  • 构建和部署 A
  • 测试 A(快速)
  • 测试 A(慢速)
  • 测试 A(非常慢)

项目B

  • 构建和部署 B
  • 测试 B(快速)
  • 测试 B(慢速)

A 的所有测试都依赖于“构建和部署 A”,B 的所有测试都依赖于“构建和部署 B”。依赖项都是具有以下设置的快照依赖项:

  • 如果有合适的版本,请勿运行新版本
  • 仅使用合适的成功构建
  • 在同一代理上运行构建

所有测试都有 VCS 触发器。缓慢的测试仅在源代码管理中的特定文件夹发生更改时运行。当提交项目 A 时,以下项目将添加到构建队列中:

  • 构建和部署 A
  • 测试 A(快速)
  • 测试 A(慢速)
  • 测试 A(非常慢)

预提交构建在构建队列中以更高的优先级运行。因此,如果在“构建和部署 A”运行时对项目 B 进行预提交检查,则构建队列将如下所示:

  • 构建和部署 B
  • 测试 B(快速)
  • 测试 B(慢速)
  • 测试 A(快速)
  • 测试 A(慢速)
  • 测试 A(非常慢)

这种设置的问题在于,这意味着 A 的测试是在项目 B 部署之后运行的。这是一个问题,因为项目 B 的部署会覆盖项目 A 所需的一些文件。被个人构建覆盖的文件是已部署的文件,它们不在签出文件夹中,这就是它们不被回滚的原因。有什么方法可以强制测试的构建链不被中断?

如果我从依赖项中删除“如果有合适的构建,则不要运行新构建”设置,则每个测试都将需要完整的构建和部署。较慢的测试不能依赖于其他测试来形成线性链,因为有时会运行“测试 A(非常慢)”,但不会运行“测试 A(慢)”。

不幸的是,目前无法拆分构建和部署来创建工件。

有什么方法可以在 TeamCity 中有效地进行设置吗?


这是我收集的内容:

  • A 和 B 应被视为互斥。
  • A 的构建优先级应始终低于 B,但是
  • 一旦开始,A就不应该被打断。

可能有办法在这方面与 TeamCity 对抗;我不知道。如果您愿意稍微改变一下流程,其中之一可能适合您:

  1. 克隆您的环境,以便A and B可以部署到不同的目标。这将使它们能够完全独立地运行。使用多个构建代理(每个至少一个A and B) 允许更快、更高的优先级B与较慢、优先级较低的同时执行A。 (我认为,这将是一项重大福利。)
  2. 让你的过程更加原子化。将各种构建/部署/测试部分合并到一个配置中,从而确保待处理的部分A构建链不能被取代B.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以防止 TeamCity 中的构建链被中断? 的相关文章

  • 替代品?

    您建议用什么来替代 Maven Java 构建工具集 只是简单的 Ant 脚本吗 SCons 无论如何 这取决于你使用什么 马文1 马文2 我发现 Maven 2 有很好的文档记录 并且在与 Ant 任务和一些自制的 Java 插件结合使用
  • 如何在Jenkins中设置环境变量?

    我希望能够做类似的事情 AOEU echo aoeu 并让詹金斯设置AOEU aoeu The 环境变量詹金斯的部分没有这样做 相反 它设置AOEU echo aoeu 如何让 Jenkins 评估 shell 命令并将输出分配给环境变量
  • 在发布中部署 PDB 文件

    我有 CI 服务器设置来构建和部署我的所有环境 包括我的生产环境 据我所知 我的所有项目文件的设置和 CI 设置在我的暂存环境构建和生产环境构建之间都是相同的 但是 当我部署到生产环境时 并没有像暂存中那样与 DLL 文件并排放置 PDB
  • 在 AWS 资源的往返工程中使用 CloudFormer

    我想以自动方式使用 CloudFormer 来生成 VPC 中现有资源的模板 我可以使用 Ruby SDK CloudFormation Client create stack 创建 cloudformer 实例 并使用 CloudForm
  • 在 CruiseControl.NET 构建中使用“devenv”和“msbuild”有什么区别?

    CruiseControl NET 中使用 标记和 标记的主要区别是什么 我知道它们调用不同的可执行文件 但有时我会得到不同的结果 就编译时的通过 失败而言 我想知道为什么两个构建命令之间存在差异 基本上 devenv Visual Stu
  • GitHub、Gerrit、Hudson(Jenkins) 工作流程

    我刚刚开始一起使用 GitHub Gerrit 和 Hudson Jenkins 我需要一些关于工作流程的想法 我们想使用 GitHub 作为我们的主要远程存储库 我们希望主要使用 Gerrit 进行代码审查 但也用于 Hudson 中的构
  • 一步一步 YouTrack“在构建中修复”填充 TeamCity 集成

    我正在使用 TeamCity Professional 8 1 和 YouTrack 5 0 6 我已经成功地用两步工作流程填充了 YouTrack 中的 Fixed in build 字段 我在用 issue id 已修复我的 Mercu
  • Hudson 基于 URL 令牌构建

    我配置了一个 hudson 实例并创建了作业 创建构建时 我能够看到此选项 通过访问此 URL SecretTOKEN 触发构建 选项 现在 我无法在我创造的任何新工作中看到这一点 我是否缺少某些设置或配置 我所做的唯一更改是将 servl
  • 仅当上一步已运行时才运行 GitHub Actions 步骤

    我已经在 GitHub actions 中设置了一个工作流程来运行我的测试并创建测试覆盖率的工件 我的 YAML 文件的精简版本如下所示 name Build on pull request jobs build runs on ubunt
  • 单个构建步骤的 TeamCity 构建日志

    当 teamcity 执行 MSBuild 步骤时 构建日志具有可折叠 可扩展的层次结构 我有一个很大的构建步骤 它运行一个 powershell 脚本 生成的构建日志很大 需要很长时间才能加载 有没有一种方法可以让 teamcity 将单
  • MS2015中的MvcBuildViews需要很长时间

    我们正在转换解决方案以使用新的 Roslyn 编译器 当我在发布模式下通过 teamCity 构建它时 MVCBuildViews 步骤仍然使用 aspnet compiler exe 并且预编译视图需要大约 15 分钟 在 NET 4 5
  • Jenkins中的日志解析规则

    我正在使用 Jenkins 日志解析器插件来提取并显示构建日志 规则文件看起来像 Compiler Error error i error Compiler Warning warning i warning 一切正常 但由于某些原因 在
  • TeamCity Agent 缺少 DotNetFramework4.0_x86,但不是?

    我一直在尝试将 TeamCity 安装从旧服务器转移到新的 Windows Server 2008 R2 服务器上 我终于完成了所有配置 然而 构建代理说DotNetFramework4 0 x86在构建代理上不可用 但已安装 NET 4
  • 如何在同一服务器上运行 TeamCity 的多个实例?

    我在 Windows 上尝试在同一服务器上运行多个 当前是两个 TeamCity 实例 我选择不安装 Windows 服务 而是通过以下方式运行服务器runAll bat启动命令 当我运行安装程序时 我为每个安装程序选择了不同的端口 名称和
  • Bitbucket 和 Azure DevOps 之间的集成

    我的要求是我想将我的 Bitbucket 存储库与 Azure DevOps CI 服务器集成 以便一旦我将代码推送到 bitbucket 存储库中 我的管道就会在 Azure DevOps CI 服务器中触发 因为我已经在 Bitbuck
  • 使用 shell 脚本在 Jenkins 中手动构建失败吗

    我想将 Jenkins 构建标记为在一种情况下失败 例如 if f file then echo file found else echo file not found Do Jenkins Build Fail fi 可以通过Shell脚
  • 如何添加更多数据存储在 jenkins Rest api 中

    为了使问题变得简单 我知道我可以通过以下方式获取一些构建信息https jenkins server https jenkins server api json xml python 我获得了有关该构建记录的大量信息 但是 我想向该构建记录
  • TeamCity 中代码覆盖率的属性过滤器语法

    有人知道从 Teamcity 的覆盖范围中排除代码的语法吗 我在某些方法上使用 ExcludeFromCodeCoverageAttribute 并希望排除这些方法 它在 Visual Studio 中运行良好 但我不明白如何在 TeamC
  • 在 TFS 2012 中使用持续集成进行自动部署

    我已经为 WCF 项目设置了持续集成 并希望使用 MSBuild 参数自动将应用程序部署到远程服务器 但它没有部署 运行新的构建时 所有测试都会通过并且所有项目都会构建 但网站尚未部署 另外 我没有从构建中收到任何错误 表明出现了任何问题
  • TeamCity 用户名/密码

    你好 我很久以前就在我的家用电脑上安装了 teamcity 我现在尝试再次重新使用它 但我忘记了管理员用户名和密码 是否有默认的管理员用户名 我怎样才能得到密码 Thank 在 TeamCity 8 中 您可以以超级用户身份登录并以这种方式

随机推荐

  • 在作业中进行大量选择后,Spring 批处理内存不足

    我的工作遇到了问题 我正在尝试从数据库读取记录并写入txt 文件 数据库包含 1 800 000 条记录 有 149 列 问题是 select 位于 jobConfig xml 中的 bean mysqlItemReader 中 但是 我认
  • spring MVC POST 表单的大小限制?

    我有一个表格
  • 将存储库公开为 IQueryable

    我想将存储库公开为 IQueryable 类型 该存储库使用 Linq to NHibernate 与数据库进行通信 谁能指出我的示例实现吗 例如 我的存储库上相应的 GetEnumerator 实现是什么样子 Edit 这样的事情合适吗
  • 使用passport.js在node.js中进行身份验证后重定向到上一页

    我正在尝试使用node js express 和passport js 建立登录机制 登录本身工作得很好 会话也用 redis 很好地存储 但在提示用户进行身份验证之前将用户重定向到他开始的位置时确实遇到了一些麻烦 例如用户点击链接http
  • NumberField 或如何让 TextField 输入 Double、Float 或其他带点的数字

    根据评论这个问题我做了一个自定义的 SwiftUIView基于一个TextField 它使用数字键盘 只能输入数字和点 只能输入一个点 点 并且可以通过Bindable Double State价值通过View用于输入 但有一个错误 当您删
  • iOS 上的 CVOpenGLESTextureCache 与 glTexSubImage2D

    我的 OpenGL 应用程序使用 OpenGL 全屏渲染纹理并定期更新其中的一部分 到目前为止 我一直在使用 glTexImage2D 来推送初始纹理 然后使用 glTexSubImage2D 更新脏区域 为此 我使用单缓冲 这效果很好 我
  • 大数的质因数分解[关闭]

    Closed 这个问题是无关 目前不接受答案 我想求小于10 12的大数的质因数分解 我得到了这个代码 用java public static List
  • 类工厂方法实现

    因此 我正在研究 Objective C 的 Apple 文档 在开始 iphone 开发之前 其中一项练习指出 我应该创建一个指定的初始值设定项 具有 3 个参数 和合适的工厂方法 现在我根据我的理解这样做了 但我无法实现工厂方法 因为我
  • 以编程方式清除 Android 上 PhoneGap/Cordova 应用程序的缓存以模拟全新安装?

    这与我之前的问题有关 每次安装应用程序时 如何清除 Android 模拟器上应用程序的 localStorage 它还建立在 如何清除 Android 应用程序缓存 and 如何以编程方式清除应用程序数据 上述问题都没有给出适用于 Andr
  • 新线程的异步等待行为

    我试图理解 async await 的精确行为 但在理解它时遇到了一些麻烦 考虑这个例子 public async void StartThread while true SomeOtherClass SomeSynchronousStuf
  • win 秒更新后 MS-access 无法捕获树视图事件

    使用 TreeView MSComctlLib TreeCtrl 2 的 Access 2010 应用程序按预期显示和填充 但在 Windows 安全补丁之后突然不会将事件触发回 VBA 尝试回滚 syswow64 中的 MSCOMCTL
  • 获取远程PC的日期时间?

    是否有任何类可用于获取 net 中远程 PC 的日期时间 为此 我可以使用计算机名称或时区 对于每种情况 是否有不同的方法来获取当前日期时间 我使用的是 Visual Studio 2005 我给你一个解决方案 使用WMI 您可能需要也可能
  • 如何使用请求模块下载,然后上传文件而无需中间文件

    我想先下载一个图像文件到服务器 然后将该文件上传到其他服务器 如果没有download file step 这将非常简单 var fs require fs var path tmp test png var formData method
  • 带 bo​​otstrap.css 的 webpack 不起作用

    这是我的webpack config js file var ExtractTextPlugin require extract text webpack plugin webpack require webpack module expo
  • 括号可以使用任意标识符作为参数吗? C++

    例如 是 const int someInt 有效代码 如果是这样 该声明与 const int someInt 您可以在两边放置任意多个括号表达式而不改变含义 但你不能对类型做同样的事情 特别是 正如其他人指出的那样 代码中的括号将含义从
  • 在 R 中创建地形图

    我正在尝试创建一个脚本 该脚本将为给定的一组坐标生成二维地形或等高线图 我的目标类似于 contour volcano 但对于用户设置的任何位置 事实证明 这具有惊人的挑战性 我努力了 library elevatr library tid
  • 我可以使用 Order By 和 ToLower 对 DocumentDB 执行不区分大小写的字符串排序吗?

    我想按标题的字母顺序对 DocumentDB 集合中的记录进行排序 起初我认为这是有效的 SELECT c Title FROM c ORDER BY c Title 但正如预期的那样 这会将小写字母排在大写字母之后 我希望我的搜索不区分大
  • android:对话框或弹出窗口内的webview

    如何在对话框或弹出窗口中添加 Web 视图 我的网络视图保留 URL WebView loadurl 当视图添加到对话框内时 它仍然移动到浏览器 我去过android 在对话框中加载webview但没有例子说明如何做吗 谢谢 这是示例 Al
  • 适用于 Java 8 的 Tomcat 8 Maven 插件

    Is the tomcat7 maven plugin使用 tomcat 8 服务器和 java 8 我找不到任何tomcat8 maven plugin 是的你可以 In your pom xml 添加tomcat插件 您可以将其用于 T
  • 是否可以防止 TeamCity 中的构建链被中断?

    我在 TeamCity 7 1 3 中进行了以下设置 项目A 构建和部署 A 测试 A 快速 测试 A 慢速 测试 A 非常慢 项目B 构建和部署 B 测试 B 快速 测试 B 慢速 A 的所有测试都依赖于 构建和部署 A B 的所有测试都