0Pricing
PHP Academy · Lektion

Mit GitHub Actions deployen

Automatisieren Sie Build-, Test- und SSH-Deployment-Schritte in einem GitHub-Actions-Workflow.

Mit GitHub Actions deployen ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist GitHub Actions?

GitHub Actions ist eine in GitHub integrierte CI/CD-Plattform. In .github/workflows/*.yml definierte Workflows werden bei Push-, Pull-Request- oder Zeitplan-Ereignissen automatisch ausgeführt.

Grundstruktur eines Workflows

Ein Workflow besteht aus einem oder mehreren Jobs, die jeweils Schritte enthalten.

# .github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: "8.3"
      - name: Install dependencies
        run: composer install --no-dev --optimize-autoloader
      - name: Run tests
        run: vendor/bin/phpunit

SSH-Bereitstellungsschritt

Stellen Sie die Anwendung nach erfolgreich abgeschlossenen Tests per SSH auf einem Server bereit.

      - name: Deploy to server
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.SERVER_HOST }}
          username: ${{ secrets.SERVER_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            cd /srv/myapp
            git pull origin main
            composer install --no-dev --optimize-autoloader
            php artisan migrate --force
            php artisan config:cache
            php artisan route:cache
            sudo systemctl reload php8.3-fpm

GitHub Secrets

Speichern Sie sensible Werte wie SSH-Schlüssel, API-Tokens und Datenbankpasswörter als verschlüsselte Repository-Secrets unter Einstellungen → Secrets und Variablen.

Abhängigkeiten cachen

Cachen Sie Composer-Pakete zwischen den Durchläufen, um Workflows zu beschleunigen.

      - name: Cache Composer packages
        uses: actions/cache@v4
        with:
          path: vendor
          key: ${{ runner.os }}-composer-${{ hashFiles("composer.lock") }}

Tests ausführen

Fügen Sie für Integrationstests einen MySQL- oder PostgreSQL-Service-Container hinzu.

services:
  mysql:
    image: mysql:8
    env:
      MYSQL_DATABASE: test
      MYSQL_ROOT_PASSWORD: secret
    ports: [3306:3306]

Umgebungsvariablen in Actions

Übergeben Sie Secrets als Umgebungsvariablen an Workflow-Schritte.

      - name: Run tests
        env:
          DB_HOST: 127.0.0.1
          DB_DATABASE: test
          DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
        run: vendor/bin/phpunit

Quality Gates für Code

Blockieren Sie Deployments, wenn Prüfungen der Codequalität fehlschlagen.

      - name: PHPStan static analysis
        run: vendor/bin/phpstan analyse src --level=6
      - name: PHP_CodeSniffer
        run: vendor/bin/phpcs src --standard=PSR12

Testen mit einer Matrix

Testen Sie gleichzeitig mit mehreren PHP-Versionen.

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        php: ["8.2", "8.3"]
    steps:
      - uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}

Bereitstellungsstrategien

Übliche Ansätze sind: direktes git pull (einfach), rsync (schnelle Dateisynchronisierung), Blue-Green (keine Ausfallzeit) und Deployer PHP (automatisierte Bereitstellung ohne Ausfallzeit). Wählen Sie anhand der tolerierbaren Ausfallzeit.

Zusammenfassung

Definieren Sie Workflows in .github/workflows/*.yml. Führen Sie bei jedem Push Tests aus und stellen Sie nach Merges in den main-Branch bereit. Cachen Sie Abhängigkeiten, speichern Sie Secrets in GitHub Secrets und fügen Sie vor der Bereitstellung Quality Gates hinzu.

Kurzer Check

Wo werden sensible Werte wie SSH-Schlüssel für GitHub Actions gespeichert?

Häufig gestellte Fragen

Ist die Lektion „Mit GitHub Actions deployen“ kostenlos?

Ja — der vollständige Text von „Mit GitHub Actions deployen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Mit GitHub Actions deployen“?

Automatisieren Sie Build-, Test- und SSH-Deployment-Schritte in einem GitHub-Actions-Workflow. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um PHP Academy zu starten?

Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Mit GitHub Actions deployen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?

Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Nginx- und PHP-FPM-Konfiguration
  2. Umgebungsvariablen und .env-Dateien
  3. Mit GitHub Actions deployen
  4. Eine PHP-Anwendung containerisieren
← Zurück zu PHP Academy