BaliseTonSite

Workflows IA

Utilise l'IA pour générer, debugger et optimiser tes workflows CI/CD.

Générer un workflow complet

Bashbash
# Prompt pour générer un workflow from scratch :
#
# "Génère un workflow GitHub Actions pour un projet Next.js 16 avec :
# - Déclenchement sur push (main) et pull_request
# - Node 20, npm ci avec cache
# - Steps : lint, typecheck, tests (vitest), build
# - Deploy sur Cloudflare Pages uniquement si branche main
# - Variables secrets : CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID
# - Format YAML, commentaires en français"
#
# L'IA produit un fichier prêt à coller dans .github/workflows/

Debugger une erreur CI

Un workflow échoue ? Copie le log d'erreur et donne-le à l'IA avec le contexte du workflow.

Bashbash
# Prompt pour debugger :
#
# "Mon workflow GitHub Actions échoue avec cette erreur :
#
# Error: Process completed with exit code 1.
# > next build
# Type error: Cannot find module '@/lib/utils' or its corresponding
# type declarations.
#
# Voici mon workflow YAML :
# [coller le workflow]
#
# Voici mon tsconfig.json :
# [coller les paths]
#
# Pourquoi ça échoue et comment corriger ?"

# L'IA identifie immédiatement :
# - Le working-directory manquant (monorepo)
# - Les alias TypeScript non résolus dans le contexte CI
# - La solution (ajouter working-directory ou corriger les paths)

Optimiser un workflow lent

Bashbash
# Prompt pour optimiser :
#
# "Mon workflow CI prend 8 minutes. Voici le YAML :
# [coller le workflow]
#
# Comment l'optimiser pour réduire le temps d'exécution ?
# Considère : cache, jobs parallèles, skip conditionnel."

# L'IA peut suggérer :
# 1. Paralléliser lint + typecheck + tests en 3 jobs
# 2. Utiliser le cache npm (actions/setup-node cache: 'npm')
# 3. Skip le deploy sur les PR (if: github.ref == 'refs/heads/main')
# 4. Utiliser concurrency pour annuler les runs en doublon

Concurrency : éviter les doublons

Bashbash
# Annuler les anciennes exécutions quand un nouveau push arrive :
name: CI

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

concurrency:
  group: ci-${{ github.ref }}
  cancel-in-progress: true     # Annule le run précédent

jobs:
  quality:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      # ... le reste du pipeline

# Sans concurrency : 5 push rapides = 5 pipelines en parallèle
# Avec concurrency : 5 push rapides = seul le dernier tourne

Générer des actions personnalisées

Bashbash
# Prompt pour une action réutilisable :
#
# "Crée une action composite GitHub Actions qui :
# 1. Installe Node 20 avec cache npm
# 2. Exécute npm ci dans un working-directory configurable
# 3. Prend en paramètre : working-directory (default: '.')
#
# Format : action.yml pour .github/actions/setup-node/action.yml"

# Résultat : une action réutilisable dans tes workflows
# Tu l'appelles avec :
#   - uses: ./.github/actions/setup-node
#     with:
#       working-directory: frontend

Créer des notifications

Bashbash
# Ajouter une notification Discord/Slack quand le deploy réussit :

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      # ... build et deploy ...

      - name: Notifier le deploy
        if: success()
        run: |
          curl -X POST "$DISCORD_WEBHOOK" \
            -H "Content-Type: application/json" \
            -d "{
              \"content\": \"Deploy OK sur main (commit ${{ github.sha }})\",
              \"username\": \"CI Bot\"
            }"
        env:
          DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL }}

Prompts avancés

  • Monorepo : "Comment ne déclencher le build que si le dossier frontend/ a changé ?" (paths filter)
  • Matrix builds : "Teste mon code sur Node 18, 20 et 22 en parallèle" (strategy.matrix)
  • Cron : "Exécute un test de sécurité chaque lundi à 8h" (schedule)
  • Release : "Crée une release GitHub automatique avec changelog" (release action)

Ce que tu as débloqué

  • Générer des workflows complets avec l'IA
  • Debugger les erreurs CI en donnant le contexte à l'IA
  • Optimiser un pipeline lent (concurrency, cache, parallélisme)
  • Créer des actions réutilisables
  • Ajouter des notifications de déploiement

Verifie tes acquis

5 questions pour valider ce chapitre

1. Quel est le meilleur prompt pour générer un workflow GitHub Actions ?

Valide et sauvegarde ce chapitre

Ne perds pas le fil de ton apprentissage. Chaque QCM terminé sauvegarde ton score. Crée ton profil gratuitement pour débloquer toutes les évaluations du site et retrouver tes résultats plus tard.

Commencer l'aventure
Déjà membre ?Connecte-toi