Service en ligne 100% Gratuit Utilitaires Web AngularForAll

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

Github Actions Ci Cd Pipeline Devops Yaml Docker Integration Continue

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.

🔄

Générateur de pipeline GitHub Actions

📋 Workflow

⚡ Déclencheurs

🏗️ Environnement

🔧 Étapes CI

🐳 Docker (optionnel)

🚀 Déploiement (optionnel)

.github/workflows/ci.yml

                                        
                                    

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.

Questions fréquentes

Choisissez votre langage ou framework (Node.js, Angular, React, Python, Docker, PHP), selectionnez les triggers (push, pull_request, schedule), configurez les jobs souhaites (install, lint, test, build, deploy) et les branches cibles. L\'outil genere un fichier YAML valide a placer dans .github/workflows/ de votre depot.

Le generateur supporte plusieurs strategies de deploiement : SSH vers un serveur distant (rsync), push vers GitHub Pages, deploiement sur AWS (S3, Elastic Beanstalk), Google Cloud Run, DigitalOcean App Platform, et publication de packages npm. Les secrets sont references via ${{ secrets.NOM_SECRET }}.

L\'outil peut inclure l\'action actions/cache pour mettre en cache node_modules/ (base sur package-lock.json) ou .venv Python (base sur requirements.txt). Cela reduit significativement le temps d\'execution des workflows en evitant de retelecharger les dependances a chaque execution.

Oui, les workflows generes utilisent uniquement des runners ubuntu-latest fournis gratuitement par GitHub pour les depots publics. Les depots prives ont un quota mensuel de minutes incluses selon le plan. Les actions utilisees (actions/checkout, actions/setup-node, etc.) sont toutes officielles et gratuites.

Partager