TL; DR: Você conhece algum provedor hospedado de CI / CD para iOS que possua seu datacenter / build-boxes na Ásia ou pelo menos na Europa? (Pontos de bônus se eles fornecerem compilação e implantação, mas compilar é o MVP.)
História:
Estamos executando o CI / CD em escala para iOS e Android: executamos mais de 10 compilações simultâneas para testar / verificar nossas ramificações de solicitação de mesclagem e implantar compilações de tronco para nossos testadores e partes interessadas. Estamos usando um provedor de SaaS / nuvem com o qual estamos muito felizes ... exceto pela localização.
Estamos na Ásia, assim como nossa fonte. O cliente está em um setor altamente regulamentado e está lutando muito para manter a fonte no local, pois acha que seu regulador ainda não pode lidar com a fonte na nuvem. Por favor, aceite esta premissa. Eu entendo por que eles precisam deixar isso de lado. Mas por enquanto ... suponha que eles não possam.
O que isso significa é: a fonte está na Ásia, mas os fornecedores de CI / CD que a constroem estão aparentemente nos EUA (Circle, Buddybuild etc.). A largura de banda transpacífica é péssima, principalmente durante o dia útil na Ásia. O tempo gasto por cada clone antes de cada build aumenta para> 60 minutos durante grande parte do dia útil.
Entrar no premiere no CI / CD seria muito fácil para compilações do Android, em contêineres de encaixe. Mas o iOS é o problema. Você precisa se dedicar a ensinar as pessoas a administrar o OSX e manter uma frota de caixas de compilação em funcionamento, ou precisa deixar que os especialistas resolvam esse problema para você.
NOTAS:
- Estou não pedir recomendações, comunidade SE! Esta é uma questão técnica factual: certos serviços, que atendem a certos requisitos técnicos, estão disponíveis em uma determinada região?
- Sabemos que o MacStadium pode fornecer máquinas virtuais simples do MacOS na Irlanda. Mas isso significa que você precisa administrar todo o seu processo de IC, além de muitas tarefas administrativas de nível inferior que preferimos evitar. Isso também significa separar a compilação da implantação, com certeza. Mas a latência parece ser aceitável.
- Conhecemos outras pessoas que possuem plataformas de CI / CD na nuvem mais próximas de nós ... mas sem suporte para iOS / MacOS.
- Sabemos que os clones rasos exigem menos largura de banda, o que mitigaria o problema, mas eles também têm outras complicações que significam que nosso provedor atual ainda não o suporta. E eles não resolvem completamente o problema em nenhum caso.
- Experimentamos o uso de espelho GitHub fora do local, que resolve alguns dos problemas, mas não aborda os problemas regulatórios. Também não funciona com muitos webhooks e, especificamente, os webhooks de solicitação de mesclagem que são críticos para o nosso pipeline de IC para obter um novo código. Poderíamos criar um agente que monitore os webhooks e, em seguida, retransmitir imperativamente os comandos da API para os outros provedores de serviços ... mas isso é realmente um salto, mas teríamos criado um novo código substancial para manter.