-
1
Setup repository e branch protection
{"step":1,"title":"Setup repository e branch protection","description":"Crea repository GitHub con application di esempio. Configura branch protection su main: required PR review 2 approver, required status check (CI deve passare), required signed commits raccomandato per non-repudiation. Abilita Dependabot security update e version update per dependency e Action. Crea directory .github\/workflows per workflow file e .github\/actions per composite action custom. Documenta convenzioni naming in CONTRIBUTING.md per consistenza del team."}
-
2
Pipeline CI base con lint test build
{"step":2,"title":"Pipeline CI base con lint test build","description":"Crea .github\/workflows\/ci.yml che triggera su pull_request e push a main. Job lint con setup-node, npm ci, npm run lint. Job test che dipende da lint con needs: [lint], esegue test suite con coverage report. Job build produce artifact via upload-artifact. Configura caching per node_modules con actions\/cache key basato su hash di package-lock.json. Verifica esecuzione su PR di test e misura tempo totale di esecuzione."}
-
3
Matrix build per multi-version testing
{"step":3,"title":"Matrix build per multi-version testing","description":"Estendi job test con matrix strategy: matrix.node-version [16, 18, 20], matrix.os [ubuntu-latest, macos-latest, windows-latest]. Risultato: 9 combinazioni eseguite in parallel. Aggiungi include per combinazione specifica ubuntu-latest con node 21 beta. Aggiungi exclude per skippare combinazioni non supportate. Imposta fail-fast: false per vedere tutte le failure invece di stop al primo. Confronta tempo totale execution con versione sequenziale."}
-
4
Composite action per setup standardizzato
{"step":4,"title":"Composite action per setup standardizzato","description":"Crea .github\/actions\/setup-project\/action.yml come composite action. Action raggruppa: checkout, setup-node con cache, npm ci, restore custom cache. Definisci input per node-version e ref opzionale. Definisci outputs per cache-hit. Usa nel workflow con uses: .\/.github\/actions\/setup-project e with node-version: 20. Riduce duplicazione tra workflow multipli. Versioning con tag v1, v2 e riferimento versione specifica per stability."}
-
5
Reusable workflow centrale per organizzazione
{"step":5,"title":"Reusable workflow centrale per organizzazione","description":"Crea repository platform-workflows in organization. Aggiungi workflow build-and-push-docker.yml con on: workflow_call, definendo inputs (image-name, dockerfile-path, build-context) e secrets (registry-token). Workflow build immagine Docker e push a registry. In application repository invoca con uses: my-org\/platform-workflows\/.github\/workflows\/build-and-push-docker.yml@v1 e parametri appropriati. Testa esecuzione e verifica output disponibili al caller."}
-
6
OIDC federation con AWS per credential senza secret
{"step":6,"title":"OIDC federation con AWS per credential senza secret","description":"Configura AWS IAM identity provider per GitHub OIDC con ARN token.actions.githubusercontent.com. Crea IAM role con trust policy che permette assume da specifico repository e branch. Workflow usa aws-actions\/configure-aws-credentials con role-to-assume e role-session-name. permissions: id-token: write e critico per OIDC. Workflow ottiene short-lived AWS credential senza secret statici. Testa con aws sts get-caller-identity e verifica role assumed correctly."}
-
7
Environment con protection rule e approval
{"step":7,"title":"Environment con protection rule e approval","description":"In repository settings crea environment production e staging. Production environment: required reviewers (CTO, lead engineer), wait timer 5 minuti, deployment branches solo main. Aggiungi environment-specific secret come DATABASE_URL production. Job deployment specifica environment: production. Prima di esecuzione workflow attende approval e timer. Reviewer riceve notification e approva via GitHub UI. Verifica audit log mostra chi approva e quando."}
-
8
Self-hosted runner con Actions Runner Controller
{"step":8,"title":"Self-hosted runner con Actions Runner Controller","description":"Su Kubernetes cluster installa ARC via Helm dal repository ufficiale. Crea AutoscalingRunnerSet che provisiona pod runner on-demand in base al carico. Configura GitHub App con permission appropriate per ARC. Runner registrati a organization level disponibili ai workflow tramite runs-on. Workflow sensibili come deploy infrastructure e access internal API usano self-hosted runner. Verifica scaling triggando 10 workflow paralleli e osservando pod creation automatica."}
-
9
Concurrency control e deployment single-flight
{"step":9,"title":"Concurrency control e deployment single-flight","description":"Aggiungi a workflow deployment: concurrency con group: deploy-production e cancel-in-progress: true. Verifica behavior triggando 2 deployment in rapida sequenza: primo cancelled, secondo prevale. Per matrix evita conflitti con concurrency per matrix variant individuale. Documenta strategy per team: workflow CI vogliono cancel su nuovo push, workflow release devono completare. Imposta concurrency appropriata per ogni workflow in base al behavior desiderato."}
-
10
Caching avanzato multi-livello
{"step":10,"title":"Caching avanzato multi-livello","description":"Setup multi-level caching: actions\/cache per node_modules con restore-keys fallback per partial cache hit. Cache Docker BuildKit layer con type gha cache backend. Cache compiled binaries come Go binary e Rust target tra workflow run. Misura impact complessivo: workflow time before e after ottimizzazione caching. Implementa cache eviction strategy con weekly cache purge job. Monitora cache hit rate via API che include cache statistics per workflow run."}
-
11
Security scanning integrato nel workflow
{"step":11,"title":"Security scanning integrato nel workflow","description":"Aggiungi job security scan alla CI pipeline. Trivy scan filesystem per vulnerability in dependency con flag severity CRITICAL,HIGH e exit-code 1. CodeQL analysis su Python o JavaScript con action\/codeql-action. Secret scanning con gitleaks per rilevare credential accidentalmente committate. Testa triggando con vulnerability nota tramite npm install di package con CVE conosciuta. Workflow fallisce e results sono visibili nel Security tab del repository."}
-
12
Deployment progressivo con canary
{"step":12,"title":"Deployment progressivo con canary","description":"Implementa canary deployment con Argo Rollouts. Job deploy-canary applica nuova version a 10% del traffico. Job monitor-canary attende 10 minuti e queries Prometheus per error rate e latency: se metric within SLO procede, altrimenti rollback automatico. Job deploy-full promote a 100% traffico. Usa environment con protection rule per gating di ogni stage. Documenta runbook rollback rapido in caso di issue durante deployment progressivo."}
-
13
Notification e ChatOps con Slack
{"step":13,"title":"Notification e ChatOps con Slack","description":"Configura notification Slack via slack-github-action on workflow failure: post a channel ci-failures con job log link, author, branch info. On deployment success: post a channel releases con changelog generato da git log tra release. Implementa slash command in Slack che triggera workflow_dispatch: comando deploy crea workflow run con parametri specifici. Archivio Slack message fornisce audit trail per tutti i deployment in produzione."}
-
14
Pipeline metric e observability
{"step":14,"title":"Pipeline metric e observability","description":"Configura GitHub Actions API per estrarre metric workflow: workflow_run, jobs, logs. Crea script che query API daily e shippa metric a Prometheus pushgateway: workflow duration, success rate, queue time, cost estimation per minuto. Crea dashboard Grafana con: top 10 slowest workflow, failure rate trend, runner utilization, monthly cost trend. Setup alert su SLO breach: deploy success rate sotto 95%, average workflow time aumentato oltre 50%."}
-
15
Documentation e team enablement
{"step":15,"title":"Documentation e team enablement","description":"Documenta platform completa in repository internal-docs con sezioni: getting started con example workflow, available reusable workflow con esempi concreti, available composite action, secret management policy (OIDC preferred), security best practice (pin SHA, minimum permission, fork PR handling), troubleshooting common issues. Conduct training session per team. Office hour settimanale per Q&A. Misura adoption metric: percentuale repository using standard reusable workflow."}
Nessun commento ancora. Sii il primo!