Advanced

Panduan Lengkap Membangun Pipeline CI/CD dengan Claude Code

Panduan komprehensif tentang membangun pipeline CI/CD menggunakan Claude Code dengan contoh praktis dan best practices.

Efisiensi Pembangunan Pipeline CI/CD dengan Claude Code

File konfigurasi CI/CD memiliki banyak sintaks detail dan sering memakan waktu untuk trial and error. Dengan Claude Code, kamu bisa langsung generate pipeline yang sesuai dengan proyekmu dalam sekali jalan.

Workflow Dasar GitHub Actions

> Buatkan workflow GitHub Actions.
> - Jalankan lint, type check, dan test saat PR dibuat
> - Build dan deploy saat di-merge ke main
> - Gunakan Node.js 20 dan pnpm
> - Set up cache untuk mempercepat
# .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 dan Push Docker Image

> Buatkan workflow untuk build Docker image dan push
> ke GitHub Container Registry.
> Tag-nya pakai git tag dan commit SHA.
# .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

Untuk pembangunan environment Docker, dijelaskan secara detail di Panduan Integrasi Docker.

Integrasi E2E Testing

> Integrasikan E2E test Playwright ke CI/CD.
> Simpan screenshot saat test gagal.
  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

Untuk gambaran keseluruhan strategi testing, lihat Panduan Lengkap Strategi Testing, dan untuk integrasi dengan Git workflow, lihat juga Otomatisasi Penuh Operasi Git.

Menambahkan Security Scan

> Tambahkan vulnerability scan dependency ke CI.
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx audit-ci --moderate

Detail security check dijelaskan di Otomatisasi Security Audit.

Summary

Dengan Claude Code, kamu bisa membangun pipeline CI/CD yang optimal untuk proyekmu dalam waktu singkat. Dengan memberikan instruksi yang jelas untuk setiap stage lint, testing, build, dan deploy, workflow yang siap produksi akan ter-generate.

Untuk detail GitHub Actions, lihat Dokumentasi Resmi GitHub Actions, dan untuk Claude Code, lihat Dokumentasi Resmi Anthropic.

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