Questo workflow automatizza la pipeline di Continuous Integration per il progetto HomeCloud.
ℹ️ Build & Deploy: Gestiti automaticamente da AWS Amplify ad ogni push su
main
Questa pipeline CI si concentra su qualità del codice e validazione.
La pipeline si attiva automaticamente per:
- ✅ Push su branch
main - ✅ Pull Request verso
main
- Configura Node.js 18 e pnpm 8
- Cache intelligente delle dipendenze
- Installazione con
pnpm install
- ESLint per il controllo qualità del codice
- Verifica formattazione Prettier (se configurato)
- Fallisce se ci sono errori di linting
- Esegue tutti i test React con Jest
- Genera report di copertura del codice
- Carica artifacts per analisi
- Valida la struttura delle funzioni Lambda AWS
- Prepara l'infrastruttura per test futuri
- Non fallisce la pipeline (informativo)
- Audit delle dipendenze npm/pnpm
- Scansione per secrets nel codice
- Solo per PR e push su main
- Verifica configurazione AWS Amplify
- Controlla sintassi file JSON
- Lista funzioni Lambda disponibili
- Genera report finale con stato di tutti i job
- Visibile nella tab "Summary" di GitHub Actions
La pipeline genera:
- Coverage Report:
coverage/(7 giorni) - Pipeline Summary: Report finale con tutti gli stati
ℹ️ Build & Deploy: Gestiti automaticamente da AWS Amplify
graph TD
A[Push/PR] --> B[Setup]
B --> C[Lint]
B --> D[Frontend Tests]
B --> E[Backend Tests]
B --> F[Security Scan]
B --> G[Amplify Validation]
C --> H[Summary]
D --> H
E --> H
F --> H
G --> H
H --> I[AWS Amplify Auto-Deploy]
I --> J[✅ Production]
```## ⚡ Ottimizzazioni
- **Cache pnpm**: Velocizza installazioni ripetute
- **Jobs paralleli**: Setup, lint, test e security girano in parallelo
- **Condizioni smart**: Build solo se lint/test passano
- **Artifacts ottimizzati**: Retention di 7 giorni
## 🛠 Estensioni Future
### Backend Testing
```bash
# Aggiungere test per funzioni Lambda
mkdir -p .github/tests/backend/unit
# Esempio: createDeadline.test.js, readUsers.test.js, etc.
# Aggiungere job per deploy staging/production
deploy-staging:
if: github.ref == 'refs/heads/develop'
# Deploy logic# Aggiungere Lighthouse CI
lighthouse:
needs: build
# Performance analysis# Locale: Fix errori ESLint
npx eslint src/ --fix# Locale: Run test in modalità interattiva
pnpm test# Locale: Test build
pnpm run build# Fix dipendenze vulnerabili
pnpm audit --fixIl progetto usa eslint-config-react-app - configurazione ottimale per React.
Nota: La pipeline è progettata per essere non-bloccante per il workflow di sviluppo, ma rigorosa per la qualità del codice in produzione.