Créer ton premier pipeline CI/CD avec GitHub Actions
1. Introduction
GitHub Actions est un service d'intégration et de déploiement continu directement intégré à GitHub. Il te permet d'automatiser les tests, le linting, le déploiement et plus encore, à chaque push ou pull request.
Dans ce tutoriel, tu vas apprendre à :
- Créer un workflow GitHub Actions
- Configurer un pipeline de test automatisé
- Exécuter ce pipeline à chaque push sur ton dépôt
2. Prérequis
- Un compte GitHub
- Un dépôt contenant ton projet (Node.js, React, Python…)
- Un fichier
package.json(pour les projets Node.js) - Git installé sur ta machine
3. Créer ton premier pipeline
Un pipeline GitHub Actions est défini dans un fichier YAML.
Crée un répertoire : .github/workflows/ à la racine de ton dépôt. Ensuite, crée un fichier ci.yml.
Ajoute ce contenu :
name: learn-github-actions
run-name: ${{ github.actor }} is learning GitHub Actions
on: [push]
jobs:
check-bats-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install -g bats
- run: bats -vFais ensuite un commit et un push pour envoyer ces modifications. Le workflow s'exécutera automatiquement à chaque push sur la branche main.
4. Lancer et vérifier ton workflow
Une fois ton fichier .yml poussé :
- Va sur ton dépôt GitHub
- Ouvre l'onglet Actions
- Ton pipeline apparaîtra et s'exécutera automatiquement


Si tout est bon, une coche verte apparaîtra.


5. Comprendre le fichier workflow
Pour mieux comprendre comment fonctionne la syntaxe YAML dans un fichier GitHub Actions, analysons chaque ligne de l'exemple présenté précédemment. Cela t'aidera à savoir exactement ce que fait ton workflow et comment l'adapter.
name: learn-github-actions
(Optionnel). Nom du workflow tel qu'il apparaît dans l'onglet Actions du dépôt GitHub. Si cette ligne est absente, GitHub utilisera par défaut le nom du fichier.run-name: ${{ github.actor }} is learning GitHub Actions
(Optionnel). Nom donné à chaque exécution (run) du workflow. Ici, on utilise une expression qui récupère l'utilisateur ayant déclenché le workflow. Cela permet d'afficher par exemple : “Essi is learning GitHub Actions”.on: [push]
Déclencheur du workflow. Ici, le pipeline se lance à chaque push sur n'importe quelle branche. Il existe d'autres déclencheurs (branches spécifiques, tags, chemins, etc.).jobs:
Regroupe tous les jobs du workflow. Un workflow peut contenir un ou plusieurs jobs, exécutés en parallèle ou en séquence.check-bats-version:
Nom du job. Tout ce qui est indenté dessous correspond aux étapes et propriétés de ce job.runs-on: ubuntu-latest
Spécifie la machine utilisée pour exécuter le job. Ici : un runner Ubuntu fraîchement préparé par GitHub. D'autres runners existent (Windows, macOS, self-hosted…).steps:
Liste des étapes exécutées par le job. Chaque élément de cette liste est une action ou une commande shell.- uses: actions/checkout@v5
Télécharge (checkout) ton dépôt sur la machine du runner. C'est nécessaire si tu veux accéder à ton code dans les étapes suivantes.- uses: actions/setup-node@v4
Installe Node.js sur la machine. La cléwith:permet de préciser la version souhaitée. Dans notre cas :node-version: '20'- run: npm install -g bats
Exécute une commande shell sur la machine. Ici : installation globale du paquet bats, un outil de test.- run: bats -v
Exécute la commande bats -v pour afficher la version du logiciel. Cela sert de vérification finale.
6. Astuces et bonnes pratiques
- Nommer clairement chaque étape du workflow.
- Utiliser des
actionsofficielles. - Limiter le déclenchement à certaines branches.
- Ajouter un badge dans ton README.
7. Conclusion
Félicitations ! Tu viens de créer ton premier pipeline CI/CD. Pour aller plus loin avec Github Actions, je te conseille de consulter la documentation officielle. Dans le prochain tutoriel, on verra le déploiement automatique sur Gitlab.
← Retour à la série← Retour au blog