CI/CD avec GitHub Actions : Guide complet

CI/CD avec GitHub Actions : Guide complet

CI/CD avec GitHub Actions : Guide complet

GitHub Actions transforme votre repository en une plateforme d’automatisation complète pour vos workflows de développement.

Concepts fondamentaux

Workflow de base

name: CI/CD Pipeline

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

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

Stratégies avancées

Matrix builds

strategy:
  matrix:
    node-version: [16, 18, 20]
    os: [ubuntu-latest, windows-latest, macos-latest]

steps:
- uses: actions/setup-node@v4
  with:
    node-version: $

Déploiement conditionnel

deploy:
  needs: test
  runs-on: ubuntu-latest
  if: github.ref == 'refs/heads/main'
  
  steps:
  - name: Deploy to production
    run: |
      echo "Deploying to production..."
      # Commandes de déploiement

Sécurité et secrets

Gestion des secrets

- name: Deploy
  env:
    API_KEY: $
    DATABASE_URL: $
  run: |
    echo "Deploying with secure credentials"

OIDC et authentification

permissions:
  id-token: write
  contents: read

- name: Configure AWS credentials
  uses: aws-actions/configure-aws-credentials@v4
  with:
    role-to-assume: $
    aws-region: eu-west-1

Actions personnalisées

Action composite

# .github/actions/setup-app/action.yml
name: 'Setup Application'
description: 'Setup Node.js and install dependencies'

inputs:
  node-version:
    description: 'Node.js version'
    required: false
    default: '18'

runs:
  using: 'composite'
  steps:
    - uses: actions/setup-node@v4
      with:
        node-version: $
    - run: npm ci
      shell: bash

Monitoring et optimisation

  • Utilisez les caches intelligemment
  • Parallélisez les jobs
  • Surveillez les temps d’exécution
  • Optimisez les images Docker

GitHub Actions offre une flexibilité exceptionnelle pour automatiser tous vos workflows de développement.

Partager cet article :