CI/CD Pipelines

Francesco Ciannavei

CI/CD Pipelines

La maggior parte dei miei progetti usa GitHub Actions come piattaforma CI/CD. La pipeline più visibile pubblica il frontend di questo sito; altre costruiscono i servizi Go in HSPI e rigenerano il mio curriculum. Nessuna fa più deploy sui miei server.

Il frontend su Cloudflare Workers

A ogni push su main, il workflow costruisce il frontend Astro, esegue i test e lo pubblica su Cloudflare Workers con Wrangler, la CLI ufficiale di Cloudflare. Nessun caricamento manuale. Anche lo svuotamento della cache delle pagine su Cloudflare può partire dal workflow, con uno script Bash, oppure a mano dalla dashboard.

Build a matrice per i servizi Go

I servizi Go che scrivo in HSPI hanno pipeline con build a matrice, che costruiscono lo stesso servizio in più combinazioni con un solo workflow.

Il curriculum su schedule

Il mio curriculum è generato da uno script Node.js dentro una pipeline che parte una volta al mese e a ogni push. Così il PDF è sempre aggiornato senza che debba ricostruirlo a mano.

Niente più deploy sui miei server

Per un periodo le mie pipeline facevano anche il deploy direttamente sui miei server di casa, via SSH attraverso un proxy. Poi, per motivi di sicurezza, ho eliminato tutti i deploy automatici verso le mie macchine.

Controlli prima della pipeline

Non tutti i controlli aspettano la CI: un hook di Git lancia a ogni commit il mio script che controlla le licenze dei pacchetti, prima che il codice venga condiviso.

Rating
8/10

Dove l'ho usato: