GitHub Actions i projektet — CI/CD-pipelines och deploy

Denna guide förklarar hur man sätter upp och använder GitHub Actions för kontinuerlig integration (CI) och kontinuerlig distribution (CD) i projekt. Den täcker grundläggande koncept, konfiguration av arbetsflöden via YAML, triggers, hantering av hemligheter, caching, matrix builds, samt praktiska exempel och best practices för att automatisera bygg-, test- och deploy-processer.

Den här guiden förklarar hur du sätter upp och använder GitHub Actions för kontinuerlig integration (CI) och kontinuerlig distribution (CD) i ditt projekt.

Vad är GitHub Actions?

GitHub Actions är GitHubs inbyggda CI/CD-plattform som låter dig automatisera arbetsflöden direkt i ditt repository. Du kan bygga, testa och distribuera din kod automatiskt när vissa händelser inträffar.

Grundläggande koncept

  • Workflow: En automatiserad process som körs när en specifik händelse inträffar
  • Job: En samling steg som körs på samma runner
  • Step: En individuell uppgift som kan köra kommandon eller actions
  • Action: En återanvändbar enhet av kod
  • Runner: En server som kör dina workflows

Komma igång

1. Skapa workflow-fil

Skapa en mapp .github/workflows/ i ditt repository och lägg till en YAML-fil, till exempel ci.yml:

2. Konfigurera triggers

Definiera när din workflow ska köras:

Vanliga CI/CD-patterns

Testa och bygga

Deploy till produktion

Multi-environment deployment

Arbeta med secrets

Känslig information som API-nycklar och lösenord ska lagras som secrets:
  1. Gå till repository Settings → Secrets and variables → Actions
  1. Klicka på "New repository secret"
  1. Använd i workflow:

    Caching för snabbare builds

    Cacha dependencies för att minska byggtiden:

    Matrix builds

    Testa mot flera versioner eller konfigurationer samtidigt:

    Artifacts och outputs

    Spara byggresultat mellan jobb:

    Användbara actions från marketplace

    • actions/checkout@v3: Checka ut repository-kod
    • actions/setup-node@v3: Sätt upp Node.js
    • actions/cache@v3: Cacha dependencies
    • docker/build-push-action@v4: Bygg och pusha Docker images
    • aws-actions/configure-aws-credentials@v2: Konfigurera AWS credentials
    • peaceiris/actions-gh-pages@v3: Deploya till GitHub Pages

    Best practices

    • Använd specifika versioner: Ange versioner för actions (@v3) för stabilitet
    • Separera jobb: Dela upp CI och CD i separata jobb
    • Använd conditions: Kör vissa steg endast vid specifika förhållanden
    • Håll workflows DRY: Använd reusable workflows och composite actions
    • Sätt timeouts: Förhindra att jobb hänger sig
      • Använd environments: Konfigurera skydd för produktionsdeploys

      Felsökning

      • Aktivera debug logging: Lägg till secrets ACTIONS_STEP_DEBUG och ACTIONS_RUNNER_DEBUG med värde true
      • Testa lokalt: Använd act för att köra workflows lokalt
      • Granska logs: Klicka på workflow runs i GitHub Actions-fliken

      Exempel: Komplett CI/CD för Node.js-projekt

      Resurser