Automatizzare build, test e deploy
GitHub Actions permette di eseguire pipeline di integrazione e rilascio direttamente accanto al codice, senza server esterni. Ogni push o pull request puo attivare un workflow che compila, testa e distribuisce l'applicazione in modo ripetibile.
Anatomia di un workflow
Un workflow e un file YAML nella cartella .github/workflows. Definisce gli eventi che lo attivano, i job da eseguire e gli step di ciascun job. I job girano su runner ospitati da GitHub o self-hosted.
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run lint
- run: npm test
- run: npm run build
Separare CI e deploy
Conviene tenere distinti il job di verifica (lint, test, build) dal job di deploy, condizionando quest'ultimo al branch main e all'esito positivo dei test. Cosi un errore nei test blocca il rilascio prima che raggiunga la produzione.
Buone pratiche
- Usa la cache delle dipendenze per ridurre i tempi.
- Conserva i segreti in GitHub Secrets, mai nel codice.
- Aggiungi controlli obbligatori sulle pull request.
- Versiona le action con un tag esplicito.
In MUSTNODE SRL usiamo GitHub Actions per garantire che ogni rilascio passi sempre dagli stessi controlli, riducendo gli errori manuali e accelerando la consegna.
Articoli correlati
Altri approfondimenti dalla categoria Cloud & DevOps.
On-premise vs Cloud Azure/AWS: criteri di scelta
Una guida pratica per scegliere tra deployment on-premise e cloud, valutando costi, sicurezza, latenza, compliance e scalabilita.
Kubernetes e orchestrazione dei container
Perche e quando adottare Kubernetes: concetti fondamentali, pod, deployment e servizi, con un occhio realistico ai costi di complessita.
Osservabilita: logging, metriche e tracing
I tre pilastri dell'osservabilita e come usarli per capire cosa succede davvero nei sistemi distribuiti in produzione.