Blocco B Β· La filiera automatizzata β Modulo 11 di 16
/srv/pratiche/
βββ compose.staging.yaml # image: dal registry (MAI build:)
βββ .env # config e segreti, permessi 600 (sistemisti)
βββ deploy.sh # pull + up + smoke test
βββ backup/
deploy-staging:
environment: { name: staging }
rules: [{ if: $CI_COMMIT_BRANCH == "main" }]
script:
- scp deploy/* utente@staging:/srv/pratiche/
- ssh utente@staging "cd /srv/pratiche &&
TAG=sha-$CI_COMMIT_SHORT_SHA ./deploy.sh"
environment: GitLab tiene la cronologia di cosa Γ¨ deployato dovefor i in $(seq 1 20); do
curl -fsS http://localhost:8080/health && exit 0
sleep 3
done
exit 1 # deploy FALLITO β pipeline rossa β tutti lo vedono
Un deploy senza verifica Γ¨ una speranza. Il job fallisce se il servizio non risponde.
compose.staging.yaml + deploy.sh; job deploy-staging