【问题标题】:Xamarin iOS project & build serverXamarin iOS 项目和构建服务器
【发布时间】:2016-11-03 09:06:18
【问题描述】:

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

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

虽然这可行,但理想情况下,我希望能够将 iOS 配置中的工件组合到主配置的工件中。

我还要确保两个构建始终从同一源构建。看起来我可以通过设置快照依赖项来做到这一点,但是 iOS 配置在触发之前等待主配置完成。理想情况下,两者都将运行并最终合并结果。

我的问题是,我怎样才能做到这一点?如果编译步骤可以同时发生,那就太好了,如果任一配置未能通过编译步骤,主构建将不会继续进行单元测试/部署步骤。如果需要,我愿意进一步分解主要构建配置,但 TeamCity 服务器需要保留在 Windows 上(因此不能在 Mac 上执行所有操作)。

【问题讨论】:

  • 如何在 MAC 上运行 Windows VM(Parallels 或 VmWare)。然后 TeamCity 可以留在 WIndows VM 上,您可以轻松地与 MAC 共享文件
  • @YuriS 我的问题不是共享文件;工件依赖项可能会解决该特定问题,但我不确定要完成这项工作的所有部分。

标签: macos xamarin build teamcity


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 2017-04-16
    • 2018-02-24
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多