到目前为止,我一直在使用Travis,并对此非常满意(虽然它只提供Linux环境)但是我正在考虑尝试使用TeamTraity并使用YouTrack。我目前的情况如下:
我有一个由多个应用程序和库组成的项目,这些应用程序和库应该是独立于平台的Windows,macOS和Linux,并且每个平台都捆绑在一起。每次我完成一个功能分支并将其合并到开发分支时,我需要手动提取新的更改,分别在Windows和macOS上编译和运行测试套件。
我希望能够将更改推送到开发分支,并让CI工具同时处理所有平台。因此,我注意到我可以设置一个在线TeamCity服务器(例如在DigitalOcean上),并在其上运行Linux构建代理,同时在我的本地桌面计算机上安装Windows构建代理,在我的(本地)Macbook上安装macOS构建代理让这些机器使用本机系统的本地工具链。
首先,我想知道这是否是一个可行的设置。我考虑使用构建代理的Docker映像,直到我注意到Windows构建代理仅在Windows服务器上运行我必须自己配置容器安装msbuild等。因此,在这种情况下,我考虑使用本地机器及其已设置的工具链作为构建从属。
最后,我想知道TeamCity是否提供构建队列或类似的东西。我所指的是以下情况:我在火车上并在我的Macbook上完成一些事情并合并它进入分支机构。但是,我的Windows构建代理程序桌面目前处于脱机状态。一旦我再次启动它,它是否可以通过排队的提交/构建工作?
答案 0 :(得分:0)
您的场景中的所有内容似乎都可以通过teamcity完成。您可以使用相同的触发器进行3次构建的设置。每个构建都将具有特定操作系统的构建步骤。如果您运行所有计算机和代理程序,则可能会同时触发它们并同时执行它们的构建。
我不确定你在第4段中想说的关于" windows构建代理仅在Windows服务器上运行"。 Windows构建代理可以在Windows 7或Windows 10等窗口上的桌面版本上运行。
是的,teamcity有一个队列。如果代理处于脱机状态,则构建将保留在队列中,直到代理重新联机或构建被取消。