Advanced

Le guide complet pour construire des pipelines CI/CD avec Claude Code

Un guide complet pour construire des pipelines CI/CD avec Claude Code, avec des exemples pratiques et les bonnes pratiques.

Optimiser la construction de pipelines CI/CD avec Claude Code

Les fichiers de configuration CI/CD contiennent de nombreuses syntaxes détaillées et les essais-erreurs prennent souvent du temps. Avec Claude Code, vous pouvez générer en une seule fois un pipeline adapté à votre projet.

Workflow de base GitHub Actions

> Crée un workflow GitHub Actions.
> - Exécuter lint, vérification des types et tests quand une PR est créée
> - Builder et déployer lors du merge sur main
> - Utiliser Node.js 20, pnpm
> - Configurer le cache pour accélérer
# .github/workflows/ci.yml
name: CI

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

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  lint-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: pnpm/action-setup@v4
        with:
          version: 9

      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: pnpm

      - run: pnpm install --frozen-lockfile

      - name: Lint
        run: pnpm lint

      - name: Type Check
        run: pnpm tsc --noEmit

      - name: Test
        run: pnpm test -- --coverage

      - name: Upload Coverage
        if: github.event_name == 'pull_request'
        uses: actions/upload-artifact@v4
        with:
          name: coverage
          path: coverage/

  deploy:
    needs: lint-and-test
    if: github.ref == 'refs/heads/main' && github.event_name == 'push'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: pnpm/action-setup@v4
        with:
          version: 9

      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: pnpm

      - run: pnpm install --frozen-lockfile
      - run: pnpm build

      - name: Deploy to Vercel
        uses: amondnet/vercel-action@v25
        with:
          vercel-token: ${{ secrets.VERCEL_TOKEN }}
          vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
          vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
          vercel-args: --prod

Build et push d’images Docker

> Crée un workflow pour builder une image Docker et la pousser vers
> GitHub Container Registry.
> Tagger avec le tag git et le SHA du commit.
# .github/workflows/docker.yml
name: Docker Build

on:
  push:
    tags: ["v*"]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write

    steps:
      - uses: actions/checkout@v4

      - uses: docker/setup-buildx-action@v3

      - uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - uses: docker/metadata-action@v5
        id: meta
        with:
          images: ghcr.io/${{ github.repository }}
          tags: |
            type=semver,pattern={{version}}
            type=sha,prefix=

      - uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ${{ steps.meta.outputs.tags }}
          cache-from: type=gha
          cache-to: type=gha,mode=max

La mise en place d’un environnement Docker est expliquée en détail dans le guide d’intégration avec Docker.

Intégration des tests E2E

> Intègre les tests E2E Playwright dans le CI/CD.
> Sauvegarder les captures d'écran en cas d'échec des tests.
  e2e-test:
    needs: lint-and-test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: pnpm/action-setup@v4
        with:
          version: 9

      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: pnpm

      - run: pnpm install --frozen-lockfile
      - run: npx playwright install --with-deps chromium

      - name: Run E2E Tests
        run: pnpm test:e2e

      - uses: actions/upload-artifact@v4
        if: failure()
        with:
          name: playwright-report
          path: playwright-report/
          retention-days: 7

Pour une vue d’ensemble des stratégies de test, consultez le guide complet des stratégies de test, et pour l’intégration avec le workflow Git, consultez également Automatisation complète des opérations Git.

Ajout du scan de sécurité

> Ajoute un scan de vulnérabilités des dépendances au CI.
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx audit-ci --moderate

Les détails sur les vérifications de sécurité sont expliqués dans Automatisation des audits de sécurité.

Résumé

Avec Claude Code, vous pouvez construire en peu de temps un pipeline CI/CD optimal pour votre projet. En spécifiant clairement chaque étape - lint, tests, build, déploiement - des workflows prêts pour la production sont générés.

Pour plus de détails sur GitHub Actions, consultez la documentation officielle de GitHub Actions, et pour Claude Code, consultez la documentation officielle d’Anthropic.

#Claude Code #CI/CD #GitHub Actions #automation #DevOps