1,740 21/03/2026 07/04/2026 3 min

Quando si gestisce un ambiente CI/CD, la possibilità di un deploy andato a male è sempre presente. L'uso di strumenti come GitLab per automatizzare i processi di integrazione e distribuzione può semplificare il ciclo di vita del software, ma quando qualcosa va storto, è fondamentale avere una strategia per la diagnosi e il rollback. In questo articolo, vedremo come affrontare un problema comune: un artifact corrotto che causa un errore di deploy.

Prerequisiti

  • Accesso a un server GitLab Runner configurato.
  • Un progetto GitLab con una pipeline CI/CD già configurata.
  • Conoscenze di base su Git e CLI.

Step 1: Diagnosi dell'Errore di Deploy

Il primo passo nella gestione di un errore è identificarne la causa. Accediamo al registro delle pipeline di GitLab.

gitlab-runner artifacts download --job job_name

Perché funziona: Questo comando scarica gli artifact generati dal job specificato, che possono contenere informazioni utili per la diagnosi.

Step 2: Verifica dell'Integrità degli Artifact

Una volta scaricati, è importante verificare la loro integrità. Puoi usare strumenti come md5sum o sha256sum per calcolare il checksum.

md5sum artifact_name.zip

Output: Un checksum che può essere confrontato con quello originale.

Perché funziona: Se il checksum non corrisponde, l'artifact è corrotto.

Step 3: Rollback al Deploy Precedente

Se abbiamo confermato che l'artifact è corrotto, é necessario effettuare un rollback al deploy precedente. In GitLab, questo può essere fatto facilmente.

git revert HEAD

Perché funziona: Questo comando annulla l'ultimo commit, riportando il codice alla versione precedente.

Step 4: Rebuild e Re-Deploy

Dopo il rollback, è opportuno ricostruire e ridistribuire il software. Torniamo nella console di GitLab e lanciamo nuovamente la pipeline.

git commit -m "Rollback to last stable version"
git push origin main

Perché funziona: Questo aggiorna la pipeline con il nuovo stato del codice, permettendo un deploy stabile.

Verifica Finale

Una volta completato il rollback, verifica che l'applicazione stia funzionando correttamente. Controlla i log di sistema e i servizi correlati per ulteriori conferme.

Troubleshooting

Errore 1: Deploy Fallito - Job Timeout

Messaggio: Job failed: execution expired

Cause: Il job ha impiegato troppo tempo per essere completato. Potrebbe essere necessario aumentare il timeout.

Fix: Modifica il file .gitlab-ci.yml per aumentare il valore di timeout.

Errore 2: Artifact Non Trovato

Messaggio: Artifact does not exist

Cause: L'artifact potrebbe non essere stato creato correttamente. Controlla i job precedenti.

Fix: Assicurati che il job che genera l'artifact sia completato con successo prima di eseguire il download.

Errore 3: Versione Corrotta Non Ridistribuibile

Messaggio: Version not valid

Cause: Può accadere se la versione precedentemente distribuita era già corrotta.

Fix: Esegui un rollback a una commit più vecchia che sia conosciuta per essere stabile.

Conclusione

Gestire errori di deploy in un ambiente CI/CD può essere complesso, ma con una buona strategia di diagnosi e rollback, è possibile minimizzare i tempi di inattività. Rimanere preparati con checkpoint regolari e backup sicuri degli artifact consente di affrontare queste situazioni con maggiore sicurezza. Come prossimo passo, esplora l'implementazione automatizzata di rollback tramite script di ascolto nel tuo pipeline di GitLab.