GITHUB ACTIONS — CI/CD PIPELINE Trigger push / PR Build Test Scan Deploy .github/workflows/ci.yml defines the entire pipeline as code

GitHub Actions ist eine CI/CD-Plattform, die direkt in GitHub-Repositories integriert ist. Sie ermoeglicht die Automatisierung von Build-, Test- und Deployment-Workflows ohne externe CI-Dienste.

Ihr Erster Workflow

Erstellen Sie .github/workflows/ci.yml:

name: CI Pipeline

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Code auschecken
        uses: actions/checkout@v4
      - name: Node.js einrichten
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      - name: Abhaengigkeiten installieren
        run: npm ci
      - name: Linter ausfuehren
        run: npm run lint
      - name: Tests ausfuehren
        run: npm test
      - name: Build
        run: npm run build

Secrets und Umgebungsvariablen

steps:
  - name: Auf Server deployen
    env:
      SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
      SERVER_HOST: ${{ secrets.SERVER_HOST }}
    run: |
      echo "$SSH_KEY" > deploy_key
      chmod 600 deploy_key
      ssh -i deploy_key user@$SERVER_HOST "cd /app && git pull && docker compose up -d"
      rm deploy_key

Astro-Website per SSH Deployen

name: Astro-Website Deployen

on:
  push:
    branches: [main]

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      - run: npm ci
      - run: npm run build
      - name: Deployen
        uses: easingthemes/ssh-deploy@main
        with:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
          REMOTE_HOST: ${{ secrets.SERVER_HOST }}
          REMOTE_USER: ${{ secrets.SERVER_USER }}
          SOURCE: "dist/"
          TARGET: "/var/www/meineseite/"

Best Practices

  1. Workflows einfach und fokussiert halten
  2. Caching verwenden fuer schnellere Builds
  3. Action-Versionen fixieren fuer Reproduzierbarkeit
  4. Niemals Secrets hartcodieren
  5. Environments verwenden fuer Produktions-Deployments

Fazit

GitHub Actions bringt CI/CD direkt in Ihr GitHub-Repository. Starten Sie mit einem einfachen Build-und-Test-Workflow und fuegen Sie schrittweise Deployment und Automatisierung hinzu.