0Pricing
Git & GitHub Professional Workflow · Lezione

Creazione di workflow CI/CD

Crei pipeline CI/CD pratiche per compilare, testare e distribuire automaticamente il codice in seguito a push o pull request.

Creazione di workflow CI/CD è una lezione Git & GitHub Professional Workflow gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Git & GitHub Professional Workflow, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Git & GitHub Professional Workflow include 4 lezioni in totale.

Benvenuto nella CI/CD

In questa lezione imparerà a creare pipeline di Continuous Integration (CI) e Continuous Deployment (CD) efficaci usando GitHub Actions.

La CI/CD automatizza il processo di sviluppo software, dalle modifiche al codice alla distribuzione, rendendolo più rapido e affidabile.

Perché la CI/CD è importante

Perché l'automazione è così importante nello sviluppo software moderno?

  • Feedback più rapido: rilevare tempestivamente bug e problemi di integrazione eseguendo automaticamente i test.
  • Build coerenti: assicurarsi che ogni build segua gli stessi passaggi, riducendo i problemi del tipo "sul mio computer funziona".
  • Rilasci affidabili: distribuire nuove funzionalità o correzioni con maggiore sicurezza e meno errori manuali.
  • Collaborazione migliore: integrare le modifiche frequentemente e senza interruzioni, riducendo al minimo i conflitti di merge.

GitHub Actions: concetti fondamentali

GitHub Actions usa workflow definiti in file YAML. Questi file si trovano in una directory speciale del repository: .github/workflows/.

Un workflow definisce una serie di job, e ogni job contiene passaggi che eseguono comandi o usano actions predefinite. È così che si indica a GitHub cosa fare!

Creazione del primo workflow CI

Creiamo un workflow CI di base che si attiva a ogni push nel repository. Configurerà Node.js e simulerà il processo di build di un progetto.

Salvi questo contenuto come .github/workflows/ci.yml nel repository:

name: Node.js CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '18'
      - name: Install dependencies
        run: npm install
      - name: Build project
        run: node build.js

Simulazione dello script di build

Il comando node build.js del workflow eseguirebbe uno script simile a questo. Lo script simula il lavoro di compilazione, bundling o preparazione del codice dell'applicazione.

Provi a eseguirlo per visualizzare l'output:

console.log("Starting project build...");
console.log("  - Compiling source files...");
console.log("  - Bundling assets for deployment...");
console.log("Build process finished successfully!");

Aggiunta di test automatizzati

Una parte fondamentale della CI consiste nell'esecuzione di test automatizzati. Estendiamo il workflow aggiungendo un passaggio di test dopo l'installazione delle dipendenze. Se i test falliscono, il workflow fallisce, impedendo al codice problematico di proseguire!

Aggiungeremo un passaggio test come questo:

name: Node.js CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '18'
      - name: Install dependencies
        run: npm install
      - name: Run tests
        run: node test.js
      - name: Build project
        run: node build.js

Simulazione dello script di test

Ecco un semplice script test.js che il workflow potrebbe eseguire. In un progetto reale si userebbero framework di test come Jest o Mocha, ma questo esempio illustra il principio dell'esecuzione dei test.

Lo esegua per visualizzare un risultato di test simulato:

console.log("Running automated tests...");
const allTestsPass = Math.random() > 0.1; // Simulate 90% chance of passing

if (allTestsPass) {
  console.log("All 12 tests passed successfully!");
} else {
  console.error("Tests failed! Please fix the errors.");
  process.exit(1); // Exit with a non-zero code to indicate failure
}

Introduzione al Continuous Deployment (CD)

Mentre la CI si concentra sulla compilazione e sui test, il Continuous Deployment (CD) fa un passo ulteriore distribuendo automaticamente l'applicazione su un server o un servizio cloud dopo il superamento di tutti i controlli CI.

Tra i trigger CD più comuni troviamo:

  • La creazione di un nuovo tag Git, ad esempio v1.0.0
  • Il push su un branch specifico, ad esempio main o production
  • La creazione di una release GitHub

Un semplice workflow CD

Ecco un workflow che si attiva in seguito alla creazione di un nuovo tag Git e include un passaggio di distribuzione simulato. In uno scenario reale, questo passaggio interagirebbe con il provider di hosting, ad esempio AWS, Azure o Heroku.

Salvi questo file come .github/workflows/cd.yml:

name: Deploy to Production

on:
  push:
    tags:
      - 'v*.*.*' # Triggers on tags like v1.0.0, v1.2.3

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Simulate deployment
        run: |
          echo "Deploying application to production server..."
          echo "Version: ${{ github.ref_name }}"
          echo "Deployment complete!"
          # In a real scenario, you'd use a deployment action here
          # e.g., aws-actions/configure-aws-credentials, appleboy/ssh-action

Verifica del workflow CI/CD

Quali dei seguenti sono i principali vantaggi dell'implementazione di pipeline CI/CD?

Riepilogo: creazione di workflow CI/CD

Ha imparato a creare workflow CI/CD solidi con GitHub Actions!

  • Abbiamo definito la CI/CD e i suoi vantaggi per lo sviluppo moderno.
  • Abbiamo esplorato la struttura YAML essenziale dei workflow di GitHub Actions.
  • Abbiamo creato workflow CI per automatizzare build e test dei progetti.
  • Abbiamo progettato un workflow CD per distribuzioni automatiche attivate dai tag.

Continui ad automatizzare per distribuire il codice più velocemente e con maggiore sicurezza!

Domande Frequenti

La lezione «Creazione di workflow CI/CD» è gratuita?

Sì — il testo completo di «Creazione di workflow CI/CD» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Git & GitHub Professional Workflow, passa a CoddyKit PRO. Il corso Git & GitHub Professional Workflow include 4 lezioni in totale.

Cosa imparerò in «Creazione di workflow CI/CD»?

Crei pipeline CI/CD pratiche per compilare, testare e distribuire automaticamente il codice in seguito a push o pull request. Eserciti Git & GitHub Professional Workflow con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Git & GitHub Professional Workflow?

Non è richiesta alcuna esperienza precedente. Git & GitHub Professional Workflow su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Creazione di workflow CI/CD»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Git & GitHub Professional Workflow?

Sì. Ogni lezione Git & GitHub Professional Workflow include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Introduzione a GitHub Actions
  2. Creazione di workflow CI/CD
  3. Action personalizzate e Marketplace
  4. Segreti e variabili d’ambiente nelle Actions
← Torna a Git & GitHub Professional Workflow