💻 Développement

dev-cicd-pipeline-builder

Conception de pipelines CI/CD pour tout type de plateforme.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- dev-cicd-pipeline-builder --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } dev-cicd-pipeline-builder -Launch"

🚀 Déjà installé ?

claude "/dev-cicd-pipeline-builder"

Ou tapez /dev-cicd-pipeline-builder dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

CI/CDpipelineGitHub ActionsAzure DevOpsGitLab CIdéploiement automatiquecontinuous integrationcontinuous deployment

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/skills/dev-cicd-pipeline-builder ~/.claude/skills/

Payload du plugin : skills/dev-cicd-pipeline-builder · source éditable : dev-skills/cicd-pipeline-builder

đź“– Manuel

CI/CD Pipeline Builder

Workflow en étapes

1. Cadrage projet

Identifier avant tout :

2. Choix de plateforme

ContextePlateforme recommandée
Repo GitHub, cloud agnostiqueGitHub Actions
Azure DevOps + AKS / App ServiceAzure Pipelines
GitLab auto-hébergéGitLab CI
On-premise, legacy, multi-repoJenkins

Critère décisif : la plateforme doit être là où vit le code ou là où tourne l'infra. Éviter les ponts cross-plateforme sauf nécessité absolue.

3. Pipeline CI — structure minimale

# .github/workflows/ci.yml (GitHub Actions)
name: CI
on:
  push:
    branches: [main, develop]
  pull_request:

jobs:
  build-test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '22', cache: npm }

      - run: npm ci
      - run: npm run lint
      - run: npm test -- --coverage

      - uses: actions/upload-artifact@v4
        with:
          name: coverage
          path: coverage/

Équivalent Azure Pipelines minimal :

# azure-pipelines.yml
trigger: [main, develop]
pool: { vmImage: ubuntu-latest }
steps:
  - task: NodeTool@0
    inputs: { versionSpec: '22.x' }
  - script: npm ci && npm run lint && npm test -- --coverage
    displayName: Build & Test
  - task: PublishTestResults@2
    inputs:
      testResultsFormat: JUnit
      testResultsFiles: '**/test-results.xml'

4. Security scan — intégrer dès la CI

# Trivy (container vulnerabilities)
      - name: Trivy scan
        uses: aquasecurity/trivy-action@0.28.0
        with:
          image-ref: ${{ env.IMAGE_TAG }}
          severity: CRITICAL,HIGH
          exit-code: '1'

# SAST léger avec CodeQL (GitHub Advanced Security)
      - uses: github/codeql-action/analyze@v3
        with: { languages: javascript }

Pour Azure DevOps : utiliser la task CredScan ou l'extension Microsoft Security DevOps.

5. Pipeline CD — gates et stratégies

Gate d'approbation manuelle (GitHub Actions) :

  deploy-prod:
    needs: deploy-staging
    environment:
      name: production          # configure reviewers dans les Settings GitHub
    runs-on: ubuntu-24.04
    steps:
      - uses: azure/webapps-deploy@v3
        with:
          app-name: my-app-prod
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}

Blue-Green sur Kubernetes :

kubectl apply -f k8s/deployment-green.yaml
kubectl rollout status deployment/app-green --timeout=120s
kubectl patch service app-svc -p '{"spec":{"selector":{"slot":"green"}}}'
# En cas d'échec :
kubectl patch service app-svc -p '{"spec":{"selector":{"slot":"blue"}}}'

Canary avec Argo Rollouts (critère de choix : trafic progressif sans downtime) :

spec:
  strategy:
    canary:
      steps:
        - setWeight: 10
        - pause: { duration: 5m }
        - setWeight: 50
        - pause: { duration: 10m }

6. Gestion des secrets

Règle absolue : aucun secret dans le code ou les artefacts. Scanner avec truffleHog ou git-secrets avant merge.

# Scan local avant push
trufflehog git file://. --since-commit HEAD --only-verified

7. Optimisation build — leviers principaux

# Cache npm (GitHub Actions)
      - uses: actions/cache@v4
        with:
          path: ~/.npm
          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
          restore-keys: ${{ runner.os }}-npm-

# Jobs parallèles
  jobs:
    lint:   { ... }
    test:   { needs: [] }   # parallèle à lint
    build:  { needs: [lint, test] }

Pour .NET : activer --configuration Release + cache NuGet via actions/cache sur ~/.nuget/packages.

8. Notifications

# Slack en fin de pipeline (succès ou échec)
      - name: Notify Slack
        if: always()
        uses: slackapi/slack-github-action@v2
        with:
          webhook: ${{ secrets.SLACK_WEBHOOK }}
          payload: |
            {"text": "${{ job.status }}: ${{ github.repository }} @ ${{ github.sha }}"}

Garde-fous / Anti-patterns

Anti-patternRisqueCorrection
Secrets en clair dans le YAMLExposition immédiateToujours via variables masquées ou vault
git push --force sur main sans protectionHistorique corrompuActiver branch protection rules + required reviews
Pipeline monolithique (tout en 1 job)Impossible à debugger, pas de parallélismeDécouper en jobs lint / test / build / deploy
Deploy direct en prod sans stagingRégressions en prodToujours staging → approbation → prod
Image Docker latest en prodNon-reproductible, rollback impossibleTags immuables : SHA court ou version sémantique
Caches trop larges (cache sur node_modules/)Dépendances corrompues entre branchesCache sur ~/.npm keyed par lockfile hash
Tests ignorés si flakyDégradation silencieuse de la qualité--ci flag (no watch, exit on fail), retry max 2

Bonnes pratiques 2026