Introduzione a GitHub Actions – Crea il tuo primo workflow CI/CD
GitHub Actions è il sistema di automazione integrato in GitHub. In questa guida passo-passo imparerai a configurare il tuo primo workflow
Anathema Studio
Team

GitHub Actions è diventato uno degli strumenti più utilizzati per l’automazione di processi di sviluppo: testing, build, deploy e persino task amministrativi.
È gratuito per repository pubblici e offre minuti generosi anche sui privati.
In questo tutorial creeremo un workflow completo per un progetto Node.js, ma i concetti sono applicabili a qualsiasi linguaggio.
Prerequisiti
- Un account GitHub (gratuito è sufficiente)
- Un repository GitHub (puoi crearne uno nuovo per testare)
- Conoscenza base di Git
- Per l’esempio: un progetto Node.js semplice con package.json e qualche test (useremo Jest, ma puoi adattarlo)
Passo 1: Crea il repository e il progetto base
- Vai su GitHub e crea un nuovo repository (es. demo-github-actions).
- Clona localmente:
git clone https://github.com/tuo-username/demo-github-actions.git
cd demo-github-actions- Inizializza un progetto Node
npm init -y
npm install --save-dev jest- Crea un file index.js con una funzione semplice e un file __tests__/index.test.js con un test.
Passo 2: Crea la cartella dei workflow
I workflow di GitHub Actions vivono nella directory .github/workflows/ del tuo repository.
Crea la cartella e un file YAML:
mkdir -p .github/workflows
touch .github/workflows/ci-cd.ymlPasso 3: Scrivi il primo workflow
Apri .github/workflows/ci-cd.yml e incolla questo contenuto base:
YAML
name: CI/CD Pipeline
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test-and-build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Installa dipendenze
run: npm ci
- name: Esegui test
run: npm test
- name: Build (se presente)
run: npm run build
# Se non hai un build script, rimuovi o commenta questa rigaQuesto workflow si attiva su push o PR sulla branch main e esegue: checkout, setup Node 20, installazione dipendenze e test.
Passo 4: Commit e push
git add .
git commit -m "Aggiunto workflow GitHub Actions"
git push origin mainVai sul tuo repository GitHub → tab Actions: vedrai il workflow in esecuzione. Se tutto è verde, hai completato il primo CI!
Passo 5: Aggiungi un deploy semplice (esempio con Vercel/Netlify o GitHub Pages)
Per rendere il workflow completo, aggiungiamo un deploy su Vercel (molto comune per frontend).
Prima, crea un account Vercel e collega il repository.
Poi modifica il workflow aggiungendo un job di deploy:
YAML
deploy:
needs: test-and-build
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Deploy su Vercel
uses: amondnet/vercel-action@v20
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}Aggiungi i secret nel repository (Settings → Secrets and variables → Actions).
Best practices
- Usa npm ci invece di npm install per riproducibilità
- Pinna le versioni delle actions (@v4 invece di @latest)
- Separa i job per test, build e deploy
- Aggiungi caching per velocizzare:
YAML
/- uses: actions/cache@v3
with:
path: ~/.npm
key: $$ {{ runner.os }}-node- $${{ hashFiles('**/package-lock.json') }}Con poche righe di YAML hai automatizzato test e deploy: ogni push ora è più sicuro e veloce.
GitHub Actions scala facilmente fino a pipeline complesse con matrix, ambienti multipli e approval manuali.
Se vuoi portare l’automazione al livello successivo (integrazioni con cloud AWS/Azure/GCP, container Docker, notifiche Slack), contattaci.
Progettiamo e implementiamo pipeline CI/CD su misura per i tuoi progetti.
