Produzione
La produzione separa preflight, migrazione D1, deployment API, staging Frontend e attivazione Frontend. Nessuna fase autorizza automaticamente la successiva.
sequenceDiagram
participant Fra
participant Issue as Issue operativo
participant GH as GitHub Environment production
participant D1
participant API as API Worker
participant FE as Frontend Worker
Fra->>Issue: go/no-go per il preflight
Issue->>GH: preflight non mutante
GH-->>Issue: evidenza sul commit esatto
Fra->>Issue: autorizzazione migrazione se necessaria
Issue->>GH: migrate-d1
GH->>D1: applica solo migrazioni attese
D1-->>Issue: risultato terminale
Fra->>Issue: autorizzazione API
Issue->>GH: deploy-api-worker
GH->>API: distribuisce la revisione approvata
API-->>Issue: health e D1 health
Fra->>Issue: autorizzazione Frontend
Issue->>GH: stage o steady-state
GH->>FE: carica e attiva la versione esatta
FE-->>Issue: smoke GET-only
Workflow operativo manuale
Production operations
offre soltanto:
| Operazione | Conferma esatta | Effetto |
|---|---|---|
preflight |
PREFLIGHT_ONLY |
controlli e dry-run |
migrate-d1 |
MIGRATE_PRODUCTION_D1 |
solo migrazioni D1 |
deploy-api-worker |
DEPLOY_PRODUCTION_API_WORKER |
solo API Worker |
stage-frontend-version |
STAGE_PRODUCTION_FRONTEND_VERSION |
upload Frontend senza traffico |
Lo staging non modifica percentuali, trigger o domini. L'attivazione è una decisione successiva e separata.
Produzione Frontend steady-state
Il percorso ordinario usa
steady-state-frontend-deployment.yml
tramite l'Admin:
- la richiesta crea operation e attempt
waiting_for_approvalsenza chiamare GitHub; - soltanto un'identità umana con
deployment:approvericeve l'azione esatta; - l'approvazione rilegge
main, persiste attore, tempo e commit, poi effettua un solo dispatch; - il workflow verifica che
HEADcoincida con lo SHA richiesto; - costruisce, carica una versione taggata con il commit, la attiva al cento per cento ed esegue lo smoke limitato.
Il GitHub Environment protegge segreti ed esecuzione. L'approvazione umana canonica resta quella applicativa; non si presume un reviewer provider quando il piano repository non lo rende disponibile.
Preflight di produzione
npm run check:production
Il comando valida configurazione API/Frontend, domini, Access, CORS, assenza di segreti committati, Frontend binding-free e dry-run indipendenti. Non dimostra lo stato remoto e non autorizza il deployment.
Condizioni inderogabili
- usare un solo commit
maincon CI completa; - registrare target di rollback API e Frontend prima della mutazione;
- elencare le migrazioni pendenti e applicare soltanto quelle autorizzate;
- non usare pubblicazione, Mailjet, Queue o dati editoriali come smoke;
- trattare provider timeout, run non univoco o versione non dimostrata come stato non riuscito;
- fermarsi tra le fasi per conservare evidenza e ottenere il go/no-go seguente.
Usare il runbook di produzione e, quando necessario, quello di staging e attivazione Frontend.