Générateur pipeline GitHub Actions (.yml)

🏷️ Outils en ligne 100% Gratuit
Github Actions Ci Cd Pipeline Devops Yaml Docker Intégration Continue
🔄

Générateur de pipeline GitHub Actions

📋 Workflow

⚡ Déclencheurs

🏗️ Environnement

🔧 Étapes CI

🐳 Docker (optionnel)

🚀 Déploiement (optionnel)

.github/workflows/ci.yml

                                        
                                    

Créez un workflow GitHub Actions complet : déclencheurs, cache, tests, build, Docker, déploiement SSH/S3/Heroku/Pages. Supporte Node.js, Python, PHP, Go, Java et Ruby.

GitHub Actions : principes

GitHub Actions est le système CI/CD intégré à GitHub. Un workflow est un fichier YAML dans .github/workflows/ qui décrit les tâches automatisées.

ConceptDescription
WorkflowFichier YAML dans .github/workflows/
Event (on:)Déclencheur : push, pull_request, schedule…
JobGroupe d'étapes qui s'exécute sur un runner
StepCommande shell ou action réutilisable
ActionBrique réutilisable (ex: actions/checkout@v4)
RunnerMachine virtuelle (ubuntu, windows, macos)

Syntaxe YAML essentielle

name: CI

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

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - name: Installer les dépendances
        run: npm ci

      - name: Tests
        run: npm test

      - name: Build
        run: npm run build

Contextes et expressions

Les contextes donnent accès aux métadonnées du workflow via la syntaxe ${{ expression }} :

ContexteExempleDescription
github${{ github.ref }}Branche / tag courant
github${{ github.sha }}Hash du commit
github${{ github.actor }}Utilisateur déclencheur
secrets${{ secrets.MY_SECRET }}Secret du repo
env${{ env.MY_VAR }}Variable d'environnement
steps${{ steps.my-step.outputs.value }}Output d'une étape

Gérer les secrets

Les secrets sont chiffrés et injectés comme variables d'environnement. Ne jamais les afficher dans les logs :

- name: Deploy via SSH
  env:
    SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
    SSH_HOST: ${{ secrets.SSH_HOST }}
  run: |
    mkdir -p ~/.ssh
    echo "$SSH_KEY" > ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa
    ssh-keyscan "$SSH_HOST" >> ~/.ssh/known_hosts
    rsync -avz dist/ user@$SSH_HOST:/var/www/html/
Où définir les secrets ? Settings → Secrets and variables → Actions → New repository secret.

Build matrix

Testez sur plusieurs versions ou OS en parallèle avec une stratégie de matrice :

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
        node: ['18', '20', '22']
      fail-fast: false # continue si une combinaison échoue

    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node }}
      - run: npm ci && npm test

Bonnes pratiques

  • Épingler les versions des actions : actions/checkout@v4 (pas @main)
  • Utiliser le cache pour les dépendances (npm, pip, Maven…)
  • Séparer CI et CD en jobs distincts avec needs:
  • Utiliser concurrency pour annuler les runs obsolètes sur PR
  • Limiter les permissions : permissions: contents: read
  • Ne jamais afficher un secret dans un echo ou run
Coût : GitHub Actions est gratuit pour les repos publics. Les repos privés ont un quota mensuel de minutes incluses selon le plan.