Introduction
GitHub Actions permet d'automatiser l'ensemble de votre cycle de développement directement dans GitHub. Au lieu d'utiliser des outils externes, vous définissez des workflows sous forme de fichiers YAML qui s'exécutent à chaque push, pull request ou événement planifié. Cette approche réduit les erreurs manuelles et accélère la livraison de code de qualité. En 2026, GitHub Actions reste l'outil le plus intégré pour les équipes qui souhaitent une CI/CD simple et puissante sans infrastructure supplémentaire.
Prérequis
- Un compte GitHub gratuit
- Un dépôt GitHub existant
- Connaissances de base en Git
- Un éditeur de texte (VS Code recommandé)
Créer le premier workflow
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npm testCe fichier YAML définit un workflow nommé CI qui se déclenche à chaque push. Il utilise un runner Ubuntu, clone le code et exécute des commandes Node.js. Placez ce fichier dans le dossier .github/workflows de votre dépôt.
Ajouter des triggers avancés
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '0 9 * * 1'Vous pouvez limiter l'exécution aux branches principales, aux pull requests ou planifier des exécutions récurrentes avec la syntaxe cron. Cela évite les exécutions inutiles sur toutes les branches.
Utiliser des secrets
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy
env:
API_KEY: ${{ secrets.API_KEY }}
run: echo "Déploiement avec clé secrète"Les secrets sont stockés de manière sécurisée dans les paramètres du dépôt. Ils sont injectés en variables d'environnement pendant l'exécution sans jamais apparaître dans les logs.
Réutiliser des actions
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: docker/build-push-action@v5
with:
push: true
tags: myapp:latestLes actions réutilisables permettent d'éviter de réécrire des étapes courantes. Choisissez toujours des actions officielles ou très populaires pour limiter les risques de sécurité.
Ajouter des conditions
steps:
- name: Run only on main
if: github.ref == 'refs/heads/main'
run: echo "Déploiement en production"L'instruction if permet d'exécuter une étape uniquement sous certaines conditions. C'est utile pour séparer les étapes de test et de déploiement selon la branche.
Bonnes pratiques
- Utilisez toujours des versions précises des actions (ex: @v4)
- Limitez les permissions des workflows avec
permissions - Ajoutez des timeouts sur les jobs
- Stockez les secrets dans les paramètres du dépôt
- Testez vos workflows en local avec act
Erreurs courantes
- Oublier de placer le fichier dans .github/workflows
- Utiliser des versions trop récentes ou instables des actions
- Ne pas protéger les branches qui déclenchent les workflows
- Ignorer les erreurs silencieuses dans les scripts shell
Pour aller plus loin
Découvrez nos formations complètes sur GitHub Actions et le DevOps moderne.