了解多个本地TeamCity构建代理如何协同工作



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

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

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

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

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

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

我不知道你在第4段中想说什么"windows构建代理只在windows服务器上运行"。windows构建代理可以在windows 7或windows 10等windows的桌面版本上运行。

是的,teamcity有队伍。如果代理处于脱机状态,则生成将保留在队列中,直到代理重新联机或取消生成。

最新更新