Catégorie 04SKILLS

GitHub Actions

CI/CD GitHub Actions — pipelines, déploiements et automatisation Drupal

Installation
Skill Claude — Globalmkdir -p ~/.claude/skills/github-actions
Structure du répertoiremkdir -p .github/workflows
GitHub CLI (optionnel)brew install gh && gh auth login
SKL
À propos

Skill Claude pour les workflows GitHub Actions dans les projets Drupal. Couvre la syntaxe YAML des workflows, les jobs parallèles, les secrets et environnements, les actions composites, le matrix build pour PHP/Drupal, et les déploiements automatisés (staging/prod) avec validation PHP_CodeSniffer, PHPUnit et Behat.

Commandes
CommandeDescription
gh workflow listLister tous les workflows du dépôt
gh workflow run deploy.ymlDéclencher un workflow manuellement
gh run list --workflow=ci.ymlVoir les dernières exécutions d'un workflow
gh run watchSuivre l'exécution d'un workflow en temps réel
gh secret set DATABASE_URLDéfinir un secret GitHub depuis le terminal
gh run downloadTélécharger les artifacts d'une exécution
Exemples
Pipeline CI complet pour un projet DrupalCODE
"Crée un workflow GitHub Actions .github/workflows/ci.yml pour un projet Drupal 11 avec :
1. Trigger sur push/PR vers main et develop
2. Job 'quality' : PHP_CodeSniffer Drupal + PHPStan niveau 5
3. Job 'tests' : PHPUnit avec service MariaDB 10.11, variables DB dans l'env
4. Job 'behat' : tests BDD avec Chrome headless (services: selenium)
5. Cache Composer entre les jobs (actions/cache)
6. Rapport JUnit uploadé comme artifact pour les tests PHPUnit"
Déploiement automatique staging et prodCODE
"Crée un workflow .github/workflows/deploy.yml avec deux jobs :
1. deploy-staging : déclenché sur push vers develop, déploiement via SSH
   - composer install --no-dev, drush updb, drush cim, drush cr
   - Utilise l'environment GitHub 'staging' avec ses secrets SSH
2. deploy-prod : déclenché manuellement (workflow_dispatch) ou sur tag v*
   - Même étapes + approval requis (environment protection rules)
   - Notification Slack après déploiement réussi
Utiliser appleboy/ssh-action pour les commandes SSH distantes"
Workflow de release automatiséCODE
"Crée un workflow de release qui se déclenche sur la création d'un tag v* :
1. Génère les release notes depuis les commits depuis le dernier tag
2. Lance les tests de régression (PHPUnit + Behat @smoke)
3. Crée la release GitHub avec les notes générées
4. Déclenche le déploiement en production (via workflow_dispatch)
5. Met à jour le CHANGELOG.md et commite sur main
Utiliser actions/create-release et conventional commits pour les notes"