GitHub Actions est une plateforme d’integration continue et de deploiement continu (CI/CD) integree directement dans les depots GitHub. Elle vous permet d’automatiser les flux de travail de build, test et deploiement sans dependre de services CI externes.
Votre Premier Workflow
Creez .github/workflows/ci.yml :
name: Pipeline CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout du code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Installer les dependances
run: npm ci
- name: Executer le linter
run: npm run lint
- name: Executer les tests
run: npm test
- name: Build
run: npm run build
Secrets et Variables d’Environnement
steps:
- name: Deployer sur le serveur
env:
SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SERVER_HOST: ${{ secrets.SERVER_HOST }}
run: |
echo "$SSH_KEY" > deploy_key
chmod 600 deploy_key
ssh -i deploy_key user@$SERVER_HOST "cd /app && git pull && docker compose up -d"
rm deploy_key
Deploiement d’un Site Astro via SSH
name: Deployer Site Astro
on:
push:
branches: [main]
jobs:
build-and-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: Deployer
uses: easingthemes/ssh-deploy@main
with:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
REMOTE_HOST: ${{ secrets.SERVER_HOST }}
REMOTE_USER: ${{ secrets.SERVER_USER }}
SOURCE: "dist/"
TARGET: "/var/www/monsite/"
Meilleures Pratiques
- Gardez les workflows simples et focalises
- Utilisez le cache pour accelerer les builds
- Fixez les versions des Actions pour la reproductibilite
- Ne codez jamais les secrets en dur dans les fichiers de workflow
- Utilisez les environnements pour controler les deploiements en production
Conclusion
GitHub Actions apporte le CI/CD directement dans votre depot GitHub. Commencez avec un workflow simple de build et test, puis ajoutez progressivement le deploiement et l’automatisation a mesure que votre confiance grandit.