GitHub Actions permet d'automatiser les tests, les builds et les deploiements directement depuis votre repository. Pas besoin d'outils externes : tout est integre a GitHub.
Les avantages concrets
- Mise en place rapide : un fichier YAML suffit.
- Integration native : gestion des PR, des tags et des releases sans configuration complexe.
- Secrets securises : variables sensibles stockees dans GitHub.
- Marketplace riche : actions pretes a l'emploi pour lint, tests, deploy, etc.
Exemple 1 : CI simple (tests + lint)
Creez un fichier .github/workflows/ci.yml :
name: CI
on:
pull_request:
push:
branches: ["main"]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- run: npm ci
- run: npm run lint
- run: npm test
Exemple 2 : Deploiement avec secrets
Supposons un deploy sur un serveur via SSH.
-
Ajoutez vos secrets dans GitHub :
SSH_HOSTSSH_USERSSH_PRIVATE_KEY
-
Workflow
.github/workflows/deploy.yml:
name: Deploy
on:
push:
branches: ["main"]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- run: npm ci
- run: npm run build
- name: Deploy via SSH
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /var/www/mon-app
git pull
npm ci
npm run build
pm2 restart mon-app
Exemple 3 : Notification Discord apres un deploiement
Ajoutez un secret DISCORD_WEBHOOK_URL dans GitHub, puis ajoutez l'etape suivante
dans votre workflow (apres le build ou le deploy) :
# Notification Discord apres deploiement PROD
- name: Notify Discord (production)
if: success() && github.ref == 'refs/heads/master'
run: |
SHORT_SHA=${GITHUB_SHA::7}
curl -X POST -H "Content-Type: application/json" \
-d "{\"content\":\":tada: Deploiement **PRODUCTION** reussi pour \`${GITHUB_REPOSITORY}\` (commit \`${SHORT_SHA}\`) : <https://github.com/${GITHUB_REPOSITORY}/commit/${GITHUB_SHA}>\\nDeploye par: \`${GITHUB_ACTOR}\`\"}" \
${{ secrets.DISCORD_WEBHOOK_URL }}
Comment ajouter un secret dans GitHub
- Ouvrez votre repository.
- Allez dans Settings > Secrets and variables > Actions.
- Cliquez sur New repository secret.
- Donnez un nom (ex:
SSH_HOST) et collez la valeur.
Ces secrets sont ensuite accessibles via secrets.NOM_DU_SECRET dans vos workflows.
Bonnes pratiques
- Gardez vos secrets hors du code.
- Utilisez des environnements GitHub (staging, production) pour isoler les secrets.
- Declenchez vos workflows sur
pull_requestetpush. - Ajoutez une etape de cache pour accelerer les builds.