Distribuera med GitHub Actions
Automatisera steg för bygge, testning och SSH-distribution i ett GitHub Actions-arbetsflöde.
Distribuera med GitHub Actions är en gratis lektion i PHP Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för PHP Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i PHP Academy innehåller totalt 4 lektioner.
Vad är GitHub Actions?
GitHub Actions är en CI/CD-plattform som är inbyggd i GitHub. Arbetsflöden som definieras i .github/workflows/*.yml körs automatiskt vid push-, pull request- eller schemalagda händelser.
Grundläggande arbetsflödesstruktur
Ett arbetsflöde består av ett eller flera jobb, där varje jobb innehåller steg.
# .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/phpunitDistributionssteg via SSH
Distribuera till en server via SSH efter att testerna har godkänts.
- 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
Lagra känsliga värden (SSH-nycklar, API-token och databaslösenord) som krypterade repository secrets under Settings → Secrets and Variables.
Cachning av beroenden
Cacha Composer-paket mellan körningar för att snabba upp arbetsflöden.
- name: Cache Composer packages
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-composer-${{ hashFiles("composer.lock") }}Köra tester
Inkludera en servicecontainer med MySQL eller PostgreSQL för integrationstester.
services:
mysql:
image: mysql:8
env:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: secret
ports: [3306:3306]Miljövariabler i Actions
Skicka hemligheter som miljövariabler till arbetsflödets steg.
- name: Run tests
env:
DB_HOST: 127.0.0.1
DB_DATABASE: test
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: vendor/bin/phpunitGrindar för kodkvalitet
Blockera distributioner om kontrollerna av kodkvaliteten misslyckas.
- name: PHPStan static analysis
run: vendor/bin/phpstan analyse src --level=6
- name: PHP_CodeSniffer
run: vendor/bin/phpcs src --standard=PSR12Matristestning
Testa mot flera PHP-versioner samtidigt.
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
php: ["8.2", "8.3"]
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}Distributionsstrategier
Vanliga metoder är direkt git pull (enkelt), rsync (snabb filsynkronisering), blue-green (inget driftstopp) och Deployer PHP (automatiserad distribution utan driftstopp). Välj utifrån hur mycket driftstopp ni kan acceptera.
Sammanfattning
Definiera arbetsflöden i .github/workflows/*.yml. Kör tester vid varje push och distribuera när ändringar har slagits ihop till huvudgrenen. Cacha beroenden, lagra hemligheter i GitHub Secrets och lägg till kvalitetsgrindar före distribution.
Snabbkontroll
Var lagras känsliga värden som SSH-nycklar för GitHub Actions?
Lär dig PHP med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 49
- Lektioner
- 195
Vanliga frågor
Är lektionen ”Distribuera med GitHub Actions” gratis?
Ja – hela texten till ”Distribuera med GitHub Actions” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i PHP Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i PHP Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Distribuera med GitHub Actions”?
Automatisera steg för bygge, testning och SSH-distribution i ett GitHub Actions-arbetsflöde. Ni övar på PHP Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig PHP Academy?
Du behöver inga förkunskaper. Utbildningen i PHP Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Distribuera med GitHub Actions”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här PHP Academy-lektionen?
Ja. Varje PHP Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Konfiguration av Nginx och PHP-FPM
- Miljövariabler och .env-filer
- Distribuera med GitHub Actions
- Dockerisera en PHP-applikation