Déployer avec GitHub Actions
Automatiser les étapes de compilation, de test et de déploiement SSH dans un flux de travail GitHub Actions.
Déployer avec GitHub Actions est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 4 leçons au total.
Qu’est-ce que GitHub Actions ?
GitHub Actions est une plateforme d’intégration et de déploiement continus intégrée à GitHub. Les workflows définis dans .github/workflows/*.yml s’exécutent automatiquement lors d’un envoi, d’une demande de fusion ou selon un calendrier.
Structure de base d’un workflow
Un workflow se compose d’un ou plusieurs travaux, chacun comprenant des étapes.
# .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Étape de déploiement via SSH
Déployez sur un serveur via SSH après la réussite des tests.
- 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-fpmSecrets GitHub
Stockez les valeurs sensibles, comme les clés SSH, les jetons d’API et les mots de passe de bases de données, en tant que secrets chiffrés du dépôt dans Paramètres → Secrets et variables.
Mise en cache des dépendances
Mettez les paquets Composer en cache entre les exécutions afin d’accélérer les workflows.
- name: Cache Composer packages
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-composer-${{ hashFiles("composer.lock") }}Exécution des tests
Incluez un conteneur de service MySQL ou PostgreSQL pour les tests d’intégration.
services:
mysql:
image: mysql:8
env:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: secret
ports: [3306:3306]Variables d’environnement dans Actions
Transmettez les secrets sous forme de variables d’environnement aux étapes du workflow.
- name: Run tests
env:
DB_HOST: 127.0.0.1
DB_DATABASE: test
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: vendor/bin/phpunitBarrières de qualité du code
Bloquez les déploiements si les vérifications de qualité du code échouent.
- name: PHPStan static analysis
run: vendor/bin/phpstan analyse src --level=6
- name: PHP_CodeSniffer
run: vendor/bin/phpcs src --standard=PSR12Tests matriciels
Testez simultanément plusieurs versions de 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 }}Stratégies de déploiement
Approches courantes : extraction directe avec git pull (simple), rsync (synchronisation rapide des fichiers), bleu-vert (sans interruption de service), Deployer PHP (sans interruption de service automatisée). Choisissez en fonction de votre tolérance aux interruptions.
Résumé
Définissez les workflows dans .github/workflows/*.yml. Exécutez les tests à chaque envoi et déployez lors des fusions dans la branche principale. Mettez les dépendances en cache, stockez les secrets dans GitHub Secrets et ajoutez des barrières de qualité avant le déploiement.
Vérification rapide
Où les valeurs sensibles, comme les clés SSH, sont-elles stockées pour GitHub Actions ?
Questions Fréquemment Posées
La leçon « Déployer avec GitHub Actions » est-elle gratuite ?
Oui — le texte complet de « Déployer avec GitHub Actions » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Déployer avec GitHub Actions » ?
Automatiser les étapes de compilation, de test et de déploiement SSH dans un flux de travail GitHub Actions. Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer PHP Academy ?
Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Déployer avec GitHub Actions » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?
Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Configuration de Nginx et PHP-FPM
- Variables d’environnement et fichiers .env
- Déployer avec GitHub Actions
- Conteneuriser une application PHP avec Docker