Deploy con GitHub Actions
Automatizzare i passaggi di build, test e deploy tramite SSH in un workflow GitHub Actions.
Deploy con GitHub Actions è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.
Che cos'è GitHub Actions?
GitHub Actions è una piattaforma CI/CD integrata in GitHub. I workflow definiti in .github/workflows/*.yml vengono eseguiti automaticamente in seguito a eventi di push, pull request o pianificati.
Struttura di base di un workflow
Un workflow è composto da uno o più job, ciascuno costituito da diversi passaggi.
# .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/phpunitPassaggio di distribuzione tramite SSH
Eseguite la distribuzione su un server tramite SSH dopo il superamento dei test.
- 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-fpmSegreti GitHub
Memorizzate i valori sensibili (chiavi SSH, token API, password del database) come segreti crittografati del repository in Impostazioni → Segreti e variabili.
Memorizzazione nella cache delle dipendenze
Memorizzate nella cache i pacchetti Composer tra un'esecuzione e l'altra per velocizzare i workflow.
- name: Cache Composer packages
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-composer-${{ hashFiles("composer.lock") }}Esecuzione dei test
Includete un container di servizio MySQL o PostgreSQL per i test di integrazione.
services:
mysql:
image: mysql:8
env:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: secret
ports: [3306:3306]Variabili d'ambiente in Actions
Passate i segreti come variabili d'ambiente ai passaggi del workflow.
- name: Run tests
env:
DB_HOST: 127.0.0.1
DB_DATABASE: test
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: vendor/bin/phpunitControlli di qualità del codice
Bloccate le distribuzioni se i controlli di qualità del codice falliscono.
- name: PHPStan static analysis
run: vendor/bin/phpstan analyse src --level=6
- name: PHP_CodeSniffer
run: vendor/bin/phpcs src --standard=PSR12Test tramite matrice
Eseguite i test contemporaneamente su più versioni di PHP.
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
php: ["8.2", "8.3"]
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}Strategie di distribuzione
Approcci comuni: git pull diretto (semplice), rsync (sincronizzazione rapida dei file), blue-green (nessun tempo di inattività), Deployer PHP (nessun tempo di inattività automatizzato). Scegliete in base alla tolleranza ai tempi di inattività.
Riepilogo
Definite i workflow in .github/workflows/*.yml. Eseguite i test a ogni push e la distribuzione sui merge del branch principale. Memorizzate le dipendenze nella cache, conservate i segreti in GitHub Secrets e aggiungete controlli di qualità prima della distribuzione.
Verifica rapida
Dove vengono memorizzati i valori sensibili, come le chiavi SSH, per GitHub Actions?
Domande Frequenti
La lezione «Deploy con GitHub Actions» è gratuita?
Sì — il testo completo di «Deploy con GitHub Actions» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.
Cosa imparerò in «Deploy con GitHub Actions»?
Automatizzare i passaggi di build, test e deploy tramite SSH in un workflow GitHub Actions. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare PHP Academy?
Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Deploy con GitHub Actions»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione PHP Academy?
Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Configurazione di Nginx e PHP-FPM
- Variabili d'ambiente e file .env
- Deploy con GitHub Actions
- Containerizzazione di un'applicazione PHP