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/phpunitSSH-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-fpmGitHub 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/phpunitQuality 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=PSR12Testen 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
- Nginx- und PHP-FPM-Konfiguration
- Umgebungsvariablen und .env-Dateien
- Mit GitHub Actions deployen
- Eine PHP-Anwendung containerisieren