Mejores Prácticas de CI/CD
Un resumen condensado de las 25 prácticas de CI/CD más importantes para equipos móviles de Expo SDK 57 - extraído de cada página en esta sección.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 prácticas de CI/CD más importantes para equipos móviles de Expo SDK 57 - extraído de cada página en esta sección.
Scripts idénticos localmente y en CI: npm run lint, typecheck, test y format:check deben funcionar en un clon fresco - CI no debe invocar comandos de herramientas puntuales que los desarrolladores nunca ejecutan.
Las verificaciones de PR son puertas rápidas: Lint, TypeScript y Jest en cada pull request - objetivo bajo diez minutos; bloquea merge mediante protección de rama.
Los pipelines de release son separados: flujos de eas build y submit impulsados por tags - disparadores diferentes, presupuesto de fallos diferente que las verificaciones de PR - Conceptos Básicos de CI/CD Móvil.
Sin compilaciones de tienda en portátiles: Los binarios de producción vienen de EAS Build con credenciales en EAS - no archivos de Xcode en el MacBook de un ingeniero.
Mismo artefacto de CI a tienda: QA aprueba build_id; eas submit usa ese ID - no --latest después de una reconstrucción - Promoción Automatizada de Tienda.
Cuenta de robot EXPO_TOKEN: CI usa un token de acceso de Expo almacenado en GitHub Secrets - nunca contraseñas personales o eas login interactivo - GitHub Actions + EAS.
npm ci siempre en CI: Instalaciones impulsadas por lockfile - npm install en flujos de trabajo crea fallos no reproducibles.
Node 20 LTS en CI: Alinea engines.node con GitHub Actions y EAS Workflows - coincide con las expectativas de herramientas de SDK 57.
Ejecuta npx expo customize antes de tsc: Las rutas tipadas necesitan .expo/types en checkouts limpios - Puertas de Calidad de CI.
Calidad antes de type: build: Los flujos de trabajo de EAS encadenan needs: [quality] para que las compilaciones nativas no comiencen con TypeScript roto - Flujos de Trabajo de EAS.
Las compilaciones preview están controladas por etiquetas: etiqueta needs-preview o filtros de ruta - no cada typo gasta créditos de EAS - Compilaciones Preview en PRs.
Distribución interna para previews de PR: distribution: internal + Android apk - instalación por código QR para QA en dispositivos reales - Distribución Interna.
Perfiles preview y production separados: Preview no debe tocar credenciales de firma de producción ni auto-incrementar números de compilación de tienda - Perfiles de Compilación y Sabores.
Maestro smoke gates envío: Dos a cuatro flujos cortos en el build_id de producción antes de type: submit - Maestro E2E.
E2E se mantiene delgado; Jest se mantiene amplio: Rutas críticas en Maestro; cobertura de rama en pruebas unitarias - Conceptos Básicos de Pruebas Móviles.
OTA solo dentro de runtimeVersion: eas update envía JS compatible con binarios de tienda instalados - Política de Versión de Runtime.
Los cambios nativos requieren compilación de tienda: Nuevos módulos de Expo, config plugins, bumps de SDK - nunca solo OTA - Conceptos Básicos de Actualizaciones OTA.
Canales de actualización explícitos: production, staging, preview - sin promoción accidental entre canales - Canales de Release y Ramas.
Documenta la reversión de OTA: eas update --roll-back ensayado antes de la primera OTA de producción - Manual de Reversión.
El calendario del train de release es compartido: Móvil, backend y QA ven la misma lista de verificación de dependencias - API antes de cambios móviles que rompan, flags antes de características visibles - Calendario del Train de Release.
Pruebas de contrato en verificaciones de PR: La deriva de forma de API se detecta antes de nightly - especialmente cuando backend se despliega continuamente - Pruebas de Contrato para APIs.
Las nightly capturan deriva de integración: Compilación completa programada en main cuando el volumen de PR es alto - alerta, no bloquees merges.
Concurrencia cancela ejecuciones de PR obsoletas: cancel-in-progress: true - ahorra minutos y reduce verificaciones rojas confusas en commits desactualizados.
Filtros de ruta de monorepo o filtro de Turbo: CI móvil se salta cuando solo cambian paquetes no relacionados - pero las nightly aún validan main completo.
Rollout escalonado después de envío: Carga automatizada ≠ 100% de usuarios inmediatamente - Juega % escalonado y TestFlight por fases - Rollouts Escalonados.
Ambos son comunes: GitHub para verificaciones de PR; Flujos de Trabajo de EAS para cadenas de compilación → Maestro → envío. Mantén los scripts npm idénticos.
Verificaciones de PR (lint + tsc + test) + eas build manual en tag. Agrega preview-on-PR y envío automatizado conforme la app crece.
Módulo nativo, config plugin, shell de navegación, o cámara/permisos - sí. Solo copia y pruebas unitarias - no.
QA probando un binario y tiendas recibiendo otro. Fija build_id de extremo a extremo.
Sí - al menos en flujos de trabajo de release y nightly. Detecta sesgo de dependencia antes de compilaciones nativas costosas.
Versiones de Stack: Esta página fue escrita para React 19.2.3, React Native 0.86.0, y Expo SDK 57 (
expo~57.0.4).
Revisado por Chris St. John·Última actualización: 16 jul 2026