Saltar al contenido

Una integración continua para cinco

Compilar, probar y publicar en cinco plataformas sin que cada versión sea una jornada: qué corre en cada máquina y cómo se ordena.

Qué corre dónde

Tres máquinas para cinco plataformas. Y la de macOS es la crítica: sin ella no hay ni macOS ni iOS.

Qué se ejecuta en cada disparador

El paso 1 es el que hay que mantener rápido, porque se ejecuta constantemente. Compilar para cinco no debería tardar más que un par de minutos con la caché bien configurada — y si tarda mucho más, merece mirarlo, porque es tiempo que se paga en cada cambio.

Que el coste no crezca linealmente

Cuatro decisiones que lo consiguen:

  • Compartir la construcción del frontend. Se compila una vez y se usa en las cinco, salvo que tengas dos interfaces —nivel 67.1— en cuyo caso son dos, no cinco.
  • Cachear las dependencias de Rust entre construcciones. Es lo que más tiempo ahorra.
  • Ejecutar las pruebas del core una sola vez, no una por plataforma: el dominio es el mismo. Nivel 67.1.
  • Y paralelizar las cinco construcciones, que son independientes.

Con las cuatro, cinco plataformas cuestan poco más que tres en tiempo de reloj, aunque cuesten más en minutos de máquina.

Coordinar una publicación

Y el orden que funciona, ampliando el nivel 63.4:

  1. Etiquetar y construir todo.
  2. Enviar móvil a revisión — es lo que más tarda, así que va primero.
  3. Verificar escritorio con los recorridos manuales. Niveles 61.4 y 62.4.
  4. Publicar escritorio con su despliegue por etapas. Nivel 64.4.
  5. Y publicar móvil cuando la revisión apruebe.

El paso 2 antes que el 3 es lo que reduce el tiempo total: la revisión corre mientras tú verificas escritorio.

Y una consecuencia: las versiones de escritorio y móvil no salen a la vez, y hay que decidir si eso importa. Si tu producto anuncia versiones, conviene esperar a tener las cinco; si no, publicar escritorio antes es razonable.