GitHub Actions ed Environments
A cosa serve
GitHub Actions esegue la CI non mutante e i workflow remoti espressamente definiti dal repository. GitHub Environments isola credenziali ed esecuzione per sviluppo e produzione.
Componenti che lo usano
ci.ymlper pull request, push amaine dispatch manuale;development-operations.yml;production-operations.yml;steady-state-frontend-deployment.yml;- GitHub App come unico dispatcher applicativo del workflow steady-state.
Dati e artefatti scambiati
Actions riceve checkout, input tipizzati, conferme e credenziali Environment; produce log, check, build, dry-run, run ID e conclusione. Non deve ricevere recipient data o contenuto editoriale privato.
Autenticazione e autorizzazione
GitHub autentica actor e workflow; Environment limita secret e target. Il repository limita branch, operation e confirmation. Questi controlli non sostituiscono l'Issue operativo o l'approvazione applicativa di produzione.
Cosa possiede il provider
GitHub possiede runner, workflow run, check, Environment, secret storage e audit del provider.
Cosa possiede Architecture Coffee
Il repository possiede YAML, trigger, permissions, input, concurrency, preflight e comandi. Fra possiede ordine e go/no-go; l'API possiede le azioni steady-state e l'evidenza D1.
Operazioni automatiche, manuali e protette
CI parte automaticamente su PR/push ma valida soltanto. Le operazioni remote
sono workflow_dispatch, una per run, su main, con Environment e conferma
esatti. Il workflow steady-state è dispatchato dal server dopo i gate previsti.
Fallimenti e comportamento fail-closed
Ref, operation o confirmation non corrispondenti saltano il job. Concurrency evita sovrapposizione nello stesso ambiente. Un check verde non autorizza la mutazione; un run ambiguo non è successo.
Verifiche operative
- permissions
contents: readper CI; - assenza di Environment e segreti remoti in CI;
- trigger solo manuale per operazioni;
- ref
main, input e confirmation esatti; - concorrenza distinta per ambiente;
- run terminale collegato allo SHA richiesto.