Demande d'informations
Pratiques CI/CD & Automatisation

GitHub Actions : créer ses premiers workflows d'automatisation

📅 15 avril 2026⏱️ 11 min de lecture📝 2 847 mots

GitHub Actions révolutionne l'automatisation des workflows de développement en offrant une plateforme CI/CD intégrée directement dans GitHub. Ce tutoriel GitHub Actions vous guidera pas à pas pour créer vos premiers workflows d'automatisation, depuis les concepts de base jusqu'au déploiement sur Azure App Service.

Contrairement aux solutions externes comme Jenkins ou GitLab CI, GitHub Actions s'intègre nativement dans l'écosystème GitHub, simplifiant considérablement la mise en place de pipelines CI/CD pour vos projets.

Les fondamentaux des workflows GitHub Actions

Un workflow GitHub Actions est un fichier YAML placé dans le répertoire .github/workflows/ de votre repository. Il définit un ensemble d'actions automatisées qui se déclenchent sur des événements spécifiques (push, pull request, release, etc.).

Structure d'un workflow basique

Voici la structure minimale d'un workflow GitHub Actions :

name: Mon Premier Workflow CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@v3
    
    - name: Setup Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '18'
        
    - name: Install dependencies
      run: npm ci
      
    - name: Run tests
      run: npm test

Composants essentiels d'un workflow

  • name : nom descriptif du workflow
  • on : événements déclencheurs (push, pull_request, schedule, etc.)
  • jobs : unités d'exécution qui peuvent s'exécuter en parallèle
  • runs-on : environnement d'exécution (ubuntu-latest, windows-latest, macos-latest)
  • steps : étapes séquentielles d'un job
  • uses : actions prédéfinies du marketplace
  • run : commandes shell à exécuter

Créer un pipeline CI complet pour une application Node.js

Construisons ensemble un pipeline GitHub Actions CI/CD complet pour une application Node.js avec tests, build et déploiement.

Workflow CI avec jobs parallèles

name: CI/CD Pipeline

on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main ]

env:
  NODE_VERSION: '18'
  AZURE_WEBAPP_NAME: 'mon-app-azure'

jobs:
  # Job de test
  test:
    runs-on: ubuntu-latest
    
    strategy:
      matrix:
        node-version: [16, 18, 20]
    
    steps:
    - name: Checkout code
      uses: actions/checkout@v3
    
    - name: Setup Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    
    - name: Install dependencies
      run: npm ci
    
    - name: Run ESLint
      run: npm run lint
    
    - name: Run tests
      run: npm test -- --coverage
    
    - name: Upload coverage reports
      uses: codecov/codecov-action@v3
      if: matrix.node-version == 18
  
  # Job de build
  build:
    runs-on: ubuntu-latest
    needs: test
    
    steps:
    - uses: actions/checkout@v3
    
    - name: Setup Node.js
      uses: actions/setup-node@v3
      with:
        node-version: ${{ env.NODE_VERSION }}
        cache: 'npm'
    
    - name: Install dependencies
      run: npm ci
    
    - name: Build application
      run: npm run build
    
    - name: Upload build artifacts
      uses: actions/upload-artifact@v3
      with:
        name: build-files
        path: dist/

Gestion des secrets et variables d'environnement

Pour gérer les informations sensibles comme les clés API ou les credentials Azure, GitHub Actions utilise un système de secrets sécurisé :

  1. Accédez aux Settings de votre repository
  2. Cliquez sur "Secrets and variables" > "Actions"
  3. Ajoutez vos secrets (ex: AZURE_CREDENTIALS, DATABASE_URL)
  4. Utilisez-les dans vos workflows avec ${{ secrets.NOM_SECRET }}

Déploiement automatisé sur Azure App Service

Le déploiement GitHub Actions vers Azure nécessite la configuration d'un Service Principal Azure et l'utilisation d'actions spécialisées.

Configuration du Service Principal Azure

Créez un Service Principal avec Azure CLI :

az ad sp create-for-rbac \
  --name "github-actions-sp" \
  --role contributor \
  --scopes /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP \
  --sdk-auth

Copiez la sortie JSON dans un secret GitHub nommé AZURE_CREDENTIALS.

Workflow de déploiement complet

  # Job de déploiement
  deploy:
    runs-on: ubuntu-latest
    needs: [test, build]
    if: github.ref == 'refs/heads/main'
    
    environment:
      name: 'production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
    
    steps:
    - name: Download build artifacts
      uses: actions/download-artifact@v3
      with:
        name: build-files
        path: dist/
    
    - name: Login to Azure
      uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}
    
    - name: Deploy to Azure App Service
      id: deploy-to-webapp
      uses: azure/webapps-deploy@v2
      with:
        app-name: ${{ env.AZURE_WEBAPP_NAME }}
        slot-name: 'production'
        package: dist/
    
    - name: Azure logout
      run: az logout

GitHub Actions vs Azure DevOps Pipelines : comparatif

Voici un tableau comparatif entre GitHub Actions et Azure DevOps Pipelines pour vous aider à choisir :

CritèreGitHub ActionsAzure DevOps Pipelines
Intégration GitNative GitHub uniquementGitHub, GitLab, Bitbucket, Azure Repos
Marketplace d'actions+ de 10 000 actionsExtensions limitées
Pricing2000 min/mois gratuit10 pipelines parallèles gratuit
AgentsGitHub-hosted ou self-hostedMicrosoft-hosted ou self-hosted
SyntaxeYAML uniquementYAML ou interface graphique
Écosystème AzureActions tierces requisesIntégration native complète
Courbe d'apprentissageFaible (si familier avec GitHub)Moyenne à élevée

Workflow avancé avec conditions et matrices

Les workflows GitHub Actions supportent des fonctionnalités avancées comme les matrices de build et les conditions d'exécution :

jobs:
  test:
    runs-on: ${{ matrix.os }}
    
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        node-version: [16, 18, 20]
        exclude:
          - os: macos-latest
            node-version: 16
    
    steps:
    - uses: actions/checkout@v3
    
    - name: Conditional step (Unix only)
      if: runner.os != 'Windows'
      run: chmod +x scripts/build.sh
    
    - name: Run tests
      run: npm test
      env:
        NODE_ENV: test
        CI: true

Monitoring et debugging des workflows

GitHub Actions fournit des outils intégrés pour surveiller et déboguer vos pipelines :

  • Logs détaillés : chaque step affiche ses logs en temps réel
  • Annotations : mise en évidence des erreurs et warnings
  • Artifacts : conservation des fichiers générés entre jobs
  • Environments : protection des déploiements avec reviews manuelles
  • Matrix builds : visualisation des résultats par configuration

Bonnes pratiques pour optimiser vos workflows

Performance et sécurité

  • Cache des dépendances : utilisez cache: 'npm' pour accélérer les builds
  • Parallélisation : séparez les jobs indépendants (test, lint, security scan)
  • Conditions intelligentes : évitez les déploiements sur les pull requests
  • Secrets rotation : renouvelez régulièrement vos credentials Azure
  • Least privilege : accordez les permissions minimales nécessaires

Maintenance et évolutivité

  • Actions versionnées : spécifiez toujours une version (ex: @v3)
  • Templates réutilisables : créez des workflows composites pour éviter la duplication
  • Documentation : commentez vos workflows complexes
  • Monitoring : configurez des alertes sur les échecs de pipeline

La maîtrise de GitHub Actions est devenue indispensable pour tout développeur souhaitant automatiser efficacement ses workflows CI/CD. Cette plateforme s'intègre parfaitement dans un écosystème DevOps moderne, notamment pour comprendre les concepts CI/CD fondamentaux.

Pour approfondir vos compétences en automatisation et CI/CD avec des outils comme GitHub Actions, Azure DevOps, et bien d'autres technologies DevOps essentielles, notre formation DevOps certifiante vous accompagne dans votre montée en compétences. Candidater maintenant pour maîtriser l'ensemble de la chaîne DevOps et booster votre carrière.