GitHub Actions
Plateforme d'automatisation CI/CD native de GitHub permettant de créer des workflows personnalisés déclenchés par des événements de dépôt.
Mis à jour le 19 janvier 2026
GitHub Actions est une plateforme d'intégration continue et de déploiement continu (CI/CD) intégrée directement dans GitHub. Elle permet aux développeurs d'automatiser l'ensemble du cycle de vie logiciel, depuis les tests jusqu'au déploiement, via des workflows définis en YAML et déclenchés par des événements Git.
Fondements
- Workflows déclaratifs : fichiers YAML stockés dans `.github/workflows/` définissant les pipelines d'automatisation
- Déclencheurs d'événements : activation automatique sur push, pull request, création d'issue, schedule cron ou webhook
- Runners : environnements d'exécution (Linux, Windows, macOS) hébergés par GitHub ou auto-hébergés
- Actions réutilisables : composants modulaires partagés via le GitHub Marketplace pour composer des workflows
Avantages
- Intégration native : aucune configuration tierce nécessaire, directement dans l'interface GitHub
- Écosystème riche : plus de 20 000 actions prêtes à l'emploi sur le Marketplace
- Gratuité généreuse : 2 000 minutes/mois pour les dépôts privés, illimité pour les publics
- Matrice de tests : exécution parallèle sur plusieurs versions de langages, OS ou configurations
- Secrets sécurisés : gestion chiffrée des variables sensibles (API keys, tokens) au niveau dépôt/organisation
Exemple concret
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 22]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test -- --coverage
- name: Upload coverage
uses: codecov/codecov-action@v3
if: matrix.node-version == 20
deploy:
needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to production
env:
DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}
run: |
npm run build
npm run deployMise en œuvre
- Créer un répertoire `.github/workflows/` à la racine du dépôt
- Définir un fichier YAML (ex: `ci.yml`) avec les déclencheurs (`on:`) et jobs
- Configurer les runners (`runs-on`) et stratégies de matrice si nécessaire
- Composer les étapes (`steps`) en utilisant des actions du Marketplace ou des commandes shell
- Ajouter les secrets sensibles via Settings > Secrets and variables > Actions
- Commit et push : le workflow s'exécute automatiquement selon les déclencheurs définis
- Monitorer l'exécution dans l'onglet Actions du dépôt et optimiser selon les logs
Conseil Pro
Utilisez les cache actions (`actions/cache`) pour stocker les dépendances entre exécutions et réduire le temps de build de 40-60%. Activez également les workflows réutilisables (reusable workflows) pour mutualiser la logique commune entre projets et éviter la duplication de configuration.
Outils associés
- Act : exécution locale des workflows GitHub Actions pour debugging sans consommer de minutes CI
- Dependabot : automatisation des mises à jour de dépendances intégrée avec GitHub Actions
- GitHub CLI (gh) : gestion des workflows, secrets et exécutions en ligne de commande
- Terraform : provisionnement d'infrastructure utilisable dans les workflows pour déploiements cloud
- Docker : conteneurisation d'actions personnalisées et environnements de build cohérents
GitHub Actions transforme les dépôts en plateformes d'automatisation complètes, réduisant le time-to-market de 30-50% selon les études GitHub. Son modèle événementiel permet d'orchestrer non seulement le CI/CD, mais aussi la gouvernance (audits automatiques), la documentation (génération de changelog) et les notifications d'équipe, centralisant ainsi l'ensemble de l'outillage DevOps dans un écosystème unifié et versionné.
