【问题标题】:Understanding how multiple local TeamCity build agents work together了解多个本地 TeamCity 构建代理如何协同工作
【发布时间】:2023-03-08 04:10:01
【问题描述】:

到目前为止,我一直在使用 Travis,对此非常满意(尽管它仅提供 Linux 环境),但我正在考虑尝试使用 TeamCity 并与 YouTrack 一起工作。我目前的情况如下:

我有一个项目,其中包含多个应用程序和库,这些应用程序和库应该是独立于平台的,面向 Windows、macOS 和 Linux,并为每个平台捆绑在一起。每次我完成一个功能分支并将其合并到开发分支时,我都需要手动拉取新的更改,分别在 Windows 和 macOS 上编译和运行测试套件。

我希望能够将更改推送到开发分支并让 CI 工具同时处理所有平台。因此,我注意到我可以设置一个在线 TeamCity 服务器(例如在 DigitalOcean 上)并在其旁边运行一个 Linux 构建代理,同时在我的本地台式计算机上安装一个 Windows 构建代理,在我的(本地)Macbook 上安装一个 macOS 构建代理。让这些机器使用其系统本机的本地工具链。

首先我想知道这是否是一个可行的设置。我考虑使用构建代理的 Docker 映像,直到我注意到 Windows 构建代理仅在 Windows 服务器上运行并且我必须自己通过安装 msbuild 等来配置容器。因此,在这种情况下,我考虑只使用我的本地机器和他们已经设置的工具链作为构建从站。

最后,我想知道TeamCity是否提供构建队列或类似的东西。我指的是以下情况:我在火车上,在我的Macbook上完成一些事情并合并它进入分支。但是,我的带有 Windows 构建代理的桌面目前处于脱机状态。一旦我再次启动它,它是否可以通过排队的提交/构建工作?

【问题讨论】:

    标签: teamcity


    【解决方案1】:

    您的场景中的所有事情似乎都可以通过 teamcity 完成。您可以使用相同的触发器设置包含 3 个构建的设置。每个构建都将具有特定操作系统的构建步骤。如果您让所有机器和代理都在运行,它们很可能会同时被触发并并行执行它们的构建。

    我不确定您在第 4 段中要说的是“Windows 构建代理仅在 Windows 服务器上运行”。Windows 构建代理可以在 Windows 7 或 Windows 10 等 Windows 的桌面版本上运行。

    是的,teamcity 有一个队列。如果代理离线,则构建将保​​留在队列中,直到代理重新在线或构建被取消。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      相关资源
      最近更新 更多