GitHub Actions est une plateforme d’automatisation intégrée à GitHub qui permet de créer, tester et déployer du code directement depuis votre dépôt. Ce guide vous explique comment configurer un pipeline CI/CD (Intégration Continue/Déploiement Continu) avec GitHub Actions pour automatiser vos workflows de développement.
Étape 1 : Comprendre les bases de GitHub Actions
GitHub Actions utilise des workflows pour définir des tâches automatisées. Un workflow est un fichier YAML qui décrit une séquence d’étapes à exécuter en réponse à des événements spécifiques (comme un push ou une pull request).
- Événements : Déclencheurs qui lancent un workflow (ex :
push
,pull_request
). - Jobs : Tâches indépendantes qui s’exécutent dans un environnement virtuel.
- Steps : Actions individuelles à l’intérieur d’un job (ex : exécuter des commandes, installer des dépendances).
Étape 2 : Créer un fichier de workflow
- Dans votre dépôt GitHub, créez un dossier
.github/workflows
à la racine. - Ajoutez un fichier YAML pour définir votre workflow (ex :
ci-cd-pipeline.yml
).
Voici un exemple de fichier de workflow pour un projet Node.js :
name: CI/CD Pipeline
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
deploy:
runs-on: ubuntu-latest
needs: build-and-test
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Build project
run: npm run build
- name: Deploy to production
run: echo "Deploying to production..."
# Remplacez cette commande par votre script de déploiement
Étape 3 : Configurer les étapes du pipeline
1. Checkout du code
- Utilisez l’action
actions/checkout
pour récupérer le code du dépôt.
2. Configuration de l’environnement
- Utilisez des actions comme
actions/setup-node
pour configurer l’environnement de développement (ex : Node.js, Python, etc.).
3. Installation des dépendances
- Exécutez des commandes pour installer les dépendances nécessaires (ex :
npm install
,pip install -r requirements.txt
).
4. Exécution des tests
- Ajoutez une étape pour exécuter les tests automatisés (ex :
npm test
,pytest
).
5. Build et déploiement
- Si les tests réussissent, lancez une étape de build (ex :
npm run build
) et déployez le code en production.
Étape 4 : Déclencher le workflow
Le workflow est automatiquement déclenché par les événements définis dans le fichier YAML (ex : un push sur la branche main
ou une pull request). Vous pouvez visualiser l’état des workflows dans l’onglet Actions de votre dépôt GitHub.
Étape 5 : Personnaliser le pipeline
Ajouter des environnements multiples
Vous pouvez configurer des jobs pour s’exécuter sur différents systèmes d’exploitation (ex : ubuntu-latest
, windows-latest
, macos-latest
) pour tester la compatibilité multiplateforme.
Utiliser des secrets pour le déploiement
Pour déployer en production, utilisez des secrets GitHub pour stocker des informations sensibles (comme les clés API ou les identifiants de connexion).
- Allez dans Settings > Secrets and variables > Actions.
- Ajoutez un nouveau secret (ex :
PROD_API_KEY
). - Utilisez-le dans votre workflow avec
${{ secrets.PROD_API_KEY }}
.
Étape 6 : Optimiser et surveiller
- Optimisation : Utilisez des matrices pour exécuter des tests en parallèle sur plusieurs versions de langages ou systèmes d’exploitation.
- Surveillance : Consultez les logs des workflows pour identifier les erreurs et améliorer l’efficacité du pipeline.
Conclusion
Avec GitHub Actions, vous pouvez facilement mettre en place un pipeline CI/CD robuste pour automatiser vos processus de développement. Ce guide vous a montré comment créer un workflow de base, configurer des étapes essentielles et personnaliser votre pipeline pour répondre à vos besoins spécifiques. Explorez la documentation officielle de GitHub Actions pour découvrir des fonctionnalités avancées et optimiser davantage vos workflows !