TL; DR:您是否知道iOS的托管CI / CD提供商,它们的数据中心/构建盒位于亚洲或至少在欧洲?(如果他们提供构建和部署,则奖励点,但是构建是MVP。)
幕后故事:
我们正在针对iOS和Android大规模运行CI / CD:我们同时运行10多个版本,以测试/验证我们的Merge-Request分支,并将主干版本部署到测试人员和涉众。我们正在使用我们非常满意的SaaS /云提供商...除了它们的位置。
我们在亚洲,正如我们的消息来源一样。客户处于一个受到严格监管的行业中,并且为使源保持在本地状态而进行了艰苦的努力,因为他们认为他们的监管者尚无法处理云中的源。请接受这个前提。我了解为什么他们需要放手。但是现在……假设他们做不到。
这意味着:来源在亚洲,但是构建它的CI / CD提供者似乎都在美国(Circle,Buddybuild等)。跨太平洋的带宽很低,尤其是在亚洲工作日。在大多数工作日中,每个克隆在每次构建之前花费的时间会超过60分钟。
对于CI / CD而言,在docker容器上进行Android构建非常容易。但是iOS是问题所在。您要么需要自己去教别人管理OSX并保持大量的构建盒正常运转,要么需要让专家为您解决该问题。
笔记:
- 我不是在寻求建议,SE社区!这是一个实际的技术问题:在特定的地理位置是否提供满足某些技术要求的某些服务?
- 我们知道MacStadium可以在爱尔兰提供裸MacOS VM。但这意味着您必须管理自己的整个CI流程,以及我们宁愿避免的许多低级系统管理任务。当然,这也意味着将构建与部署分开。但是延迟似乎是可以接受的。
- 我们知道其他人拥有更接近我们的云CI / CD平台...但是没有iOS / MacOS支持。
- 我们知道浅层克隆需要较少的带宽,这可以缓解问题,但是它们还具有其他复杂性,这意味着我们当前的提供商尚不支持它。而且它们在任何情况下都不能完全解决问题。
- 我们已经尝试过使用非本地GitHub镜像,该镜像解决了一些问题,但没有解决监管问题。它也不适用于许多Webhook,特别是对于我们的CI管道中的新代码至关重要的Merge-Request Webhook。我们可以创建一个代理来监视webhooks,然后将API命令强制中继给其他服务提供者...但这确实是一个难题,而且我们还创建了许多新代码来维护。