2016-10-21 254 views
0

我想确定如何构建我们的Xamarin iOS项目,同时保持与其他项目构建的工件。我们所有的代码都在一个单一的解决方案中,我们有多个UI项目(WinForms,网站和UWP的Xamarin项目,W8.1/WP8.1和Android)。我们的TeamCity(10)服务器托管在Windows上,它可以构建除了必须在Mac上完成的iOS项目之外的所有内容。Xamarin iOS项目和构建服务器

我将解决方案配置为构建除iOS之外的所有内容,并且我可以设置另一个构建配置,以便使用Mac构建代理为iOS构建构建。两种配置都使用相同的SVN VCS作为触发器。

尽管如此,理想情况下我希望能够将iOS配置中的工件组合到主配置的工件中。

我也确保这两个版本总是从同一个源生成。看起来我可以通过设置快照依赖性来实现这一点,但是,然后iOS配置会在触发前等待主配置完成。理想情况下,两者都会运行并最终结合结果。

我的问题是,我该如何做到这一点?如果编译步骤可以同时发生,并且主构建不会继续进行单元测试/部署步骤(如果任一配置未能通过编译步骤),那将会很棒。如果需要,我打算进一步拆分主构建配置,但TeamCity服务器需要保持在Windows上(因此Mac上的所有内容都不是一种选择)。

+0

如何在MAC上运行Windows VM(Parallels或VmWare)。然后TeamCity可以留在WIndows虚拟机上,你可以很容易地与MAC共享文件 –

+0

@YuriS这不是共享文件,这是我的问题;工件依赖可能会解决这个特定的问题,但我不确定所有的工作是什么使这项工作。 – Andy

回答

0

我能够做到这一点,将构建分解为三个单独的配置。一个只做iOS构建,一个构建Windows/Android项目,另一个从其他两个配置获取依赖关系,并继续构建过程(如单元测试,打包等)。我必须为最终构建配置设置工件依赖性和快照依赖性,以便所有内容都使用相同的源。

iOS和android/Windows的构建都是并行触发和运行,如果任何一个失败,第三个配置将不会启动。

相关问题