GITHUB ACTIONS — CI/CD PIPELINE Trigger push / PR schedule Build Install deps Compile Test Unit tests Integration Scan Security Lint / Format Deploy Production CDN / Server Automated pipeline runs on every push and pull request .github/workflows/ci.yml defines the entire pipeline as code

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

  1. Gardez les workflows simples et focalises
  2. Utilisez le cache pour accelerer les builds
  3. Fixez les versions des Actions pour la reproductibilite
  4. Ne codez jamais les secrets en dur dans les fichiers de workflow
  5. 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.