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
- Workflows einfach und fokussiert halten
- Caching verwenden fuer schnellere Builds
- Action-Versionen fixieren fuer Reproduzierbarkeit
- Niemals Secrets hartcodieren
- 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.