Skip to content

08. CI/CD & Environments Strategy

Fase: 05 — Diseño Arquitectónico
Entregable: 08
Proyecto: NoteVault (PC, Mac, Android, iPhone)


1. Estrategia de Integración Continua y Despliegue Multiplataforma

flowchart TD
    subgraph Pipeline de Integración Continua (CI)
        TRIGGER["Git Push a rama main / PR"] --> LINT["1. Typecheck & Linter<br/>npm run typecheck && flutter analyze"]
        LINT --> TEST["2. Suites de Pruebas Unitarias<br/>npx vitest run && flutter test"]
        TEST --> CONF["3. Pruebas de Conformidad Binaria<br/>flutter test test/conformance_test.dart"]
    end

    subgraph Pipeline de Despliegue (CD)
        CONF --> BUILD_WIN["Compilar Windows (.exe NSIS)"]
        CONF --> BUILD_MAC["Compilar macOS (.dmg Universal)"]
        CONF --> BUILD_ANDR["Compilar Android (.apk / .aab)"]
        CONF --> BUILD_IOS["Compilar iOS (.ipa Archive)"]
    end

Ambientes Operativos

  • Local Dev: Servidor Vite con HMR para React y hot-reload de Flutter en emuladores.
  • CI Runner: Contenedores aislados sin estado donde se validan suites de pruebas unitarias y cobertura.
  • Release: Binarios firmados y empaquetados distribuidos directamente a los usuarios o a través de tiendas de aplicaciones.

2. Marco Conceptual: Pipeline Automatizado de CI/CD

1. **Entidad principal e independiente.** 2. **Es la entidad líder del conjunto de datos:** posee un identificador global único que modela el flujo de integración continua (`cicd_pipeline_id`: `PIPELINE-MULTI-PLATFORM-BUILD`) consultado en las auditorías de DevOps. 3. **Existe por sí misma en la configuración de automatización (`.github/workflows/`) sin depender del entorno de desarrollo local**, y es la única responsable de garantizar que ningún binario se publique si falla una sola prueba. 4. **Punto de entrada y límite de consistencia:** Sella la inmutabilidad de los releases de producción.