Advanced (Diperbarui: 3/6/2026)

Setup CI/CD Claude Code: GitHub Actions aman untuk PR, deploy, dan rollback

Bangun CI/CD aman dengan Claude Code, GitHub Actions, test gate, Secrets, deploy, dan rollback.

Setup CI/CD Claude Code: GitHub Actions aman untuk PR, deploy, dan rollback

Meminta Claude Code “buatkan CI/CD” memang cepat. YAML bisa muncul dalam beberapa menit. Masalahnya, workflow yang bisa berjalan belum tentu aman untuk produksi. Pipeline yang baik harus menghentikan Pull Request yang rusak, tidak membuka Secrets ke fork, memisahkan staging dan production, mempertahankan approval manusia untuk production, dan menyediakan rollback yang jelas.

Di panduan ini, Claude Code dipakai sebagai partner desain CI/CD, bukan generator YAML. CI berarti continuous integration: lint, type check, test, dan build berjalan saat kode berubah. CD berarti continuous delivery atau deployment: perubahan yang sudah lolos validasi masuk ke environment. Gate adalah syarat yang harus lolos sebelum job berikutnya. Secrets adalah nilai privat seperti API key atau deploy token. OIDC memberi identitas jangka pendek sehingga kita tidak perlu menyimpan cloud key jangka panjang di GitHub Secrets.

Selalu cocokkan dengan dokumentasi resmi: Claude Code GitHub Actions, GitHub Actions workflow syntax, GITHUB_TOKEN permissions, GitHub Secrets, dan GitHub Environments. Contoh di bawah memakai GitHub-hosted runner dan, per 2026-06-03, actions/checkout@v6 serta actions/setup-node@v6. Jika memakai self-hosted runner, cek versi runner lebih dulu.

Tentukan batas otomatisasi

Sebelum menulis YAML, tentukan apa yang boleh dilakukan Claude Code dan apa yang tetap keputusan manusia. Claude Code bisa membaca repository, mengusulkan workflow, meringkas log, dan memberi saran fix. Ia tidak boleh memperluas permission sendiri, memutuskan release production, mencetak Secrets, atau menjalankan kode PR yang tidak tepercaya dengan event privileged.

AreaCocok untuk Claude CodeKeputusan manusia
PR checksMembuat lint, test, typecheck, buildRequired checks dan aturan merge
PR reviewMenandai risiko, permission, test gapMenerima atau menolak patch
DeployDraft workflow staging dan productionApproval dan scope Secrets
RecoveryMerangkum log dan mengusulkan rollbackMenjalankan rollback production

Mulai dengan prompt yang membatasi ruang gerak:

Design CI/CD for this repository.
The goals are pull request quality gates, staging deployment, Claude Code review, and production rollback.

Constraints:
- Use least-privilege GITHUB_TOKEN permissions per job.
- Do not use secrets on forked pull requests.
- If pull_request_target is suggested, explain why PR head code is not checked out.
- Put production deployment behind a GitHub Environment approval.
- Never print ANTHROPIC_API_KEY, DEPLOY_TOKEN, or other secret values.
- Produce workflow YAML that can be placed under .github/workflows/.

End with failure cases, verification commands, and rollback steps.

Prompt ini menjadi harness, yaitu kerangka kerja aman untuk agent. Untuk aturan yang dipakai berulang, simpan di CLAUDE.md; lihat CLAUDE.md best practices agar file itu tetap praktis.

Use case 1: Pull Request quality gate

Workflow pertama harus mencegah merge tanpa validasi. Contoh ini menjalankan lint, typecheck, test, dan build, lalu memakai matrix Node.js 22 dan 24.

# .github/workflows/ci.yml
name: ci

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

permissions:
  contents: read

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

jobs:
  test:
    name: test-node-${{ matrix.node-version }}
    runs-on: ubuntu-latest
    timeout-minutes: 15
    strategy:
      fail-fast: false
      matrix:
        node-version: [22, 24]
    steps:
      - uses: actions/checkout@v6

      - uses: actions/setup-node@v6
        with:
          node-version: ${{ matrix.node-version }}
          cache: npm

      - run: npm ci
      - run: npm run lint --if-present
      - run: npm run typecheck --if-present
      - run: npm test -- --runInBand

  build:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    needs: test
    steps:
      - uses: actions/checkout@v6

      - uses: actions/setup-node@v6
        with:
          node-version: 24
          cache: npm

      - run: npm ci
      - run: npm run build

Untuk project Node umum yang punya npm test dan npm run build, workflow ini bisa langsung dicoba. lint dan typecheck memakai --if-present agar migrasi awal tidak macet. Setelah stabil, minta Claude Code membaca package.json dan menghapus gate palsu. Untuk strategi test yang lebih lengkap, baca testing strategies.

Use case 2: Claude Code PR review dalam mode baca

Claude Code Action bisa mengomentari risiko PR: permission GitHub Actions terlalu luas, Secrets mungkin terbuka, test kurang, rollback lemah, atau file tidak terkait ikut berubah. Mulailah dengan review komentar, bukan auto-edit.

# .github/workflows/claude-pr-review.yml
name: claude-pr-review

on:
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]

permissions:
  contents: read
  pull-requests: write
  issues: write

concurrency:
  group: claude-review-${{ github.event.pull_request.number }}
  cancel-in-progress: true

jobs:
  review:
    if: >
      github.event.pull_request.draft == false &&
      github.event.pull_request.head.repo.full_name == github.repository
    runs-on: ubuntu-latest
    timeout-minutes: 15
    steps:
      - uses: actions/checkout@v6
        with:
          persist-credentials: false

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          github_token: ${{ secrets.GITHUB_TOKEN }}
          prompt: |
            Review this pull request as a CI/CD safety reviewer.
            Focus on GitHub Actions permissions, secrets exposure, test coverage,
            deployment gates, rollback risk, and unrelated file changes.
            Do not edit files. Leave concise review comments with evidence.
          claude_args: |
            --max-turns 4

Kondisi fork menjaga agar workflow yang memakai Secrets tidak berjalan pada fork eksternal. Jika ingin memeriksa PR dari kontributor luar, pisahkan static check tanpa secret dan workflow privileged yang hanya berjalan setelah approval manusia. Hati-hati dengan pull_request_target karena event itu berjalan di context repository base. Jika Claude Code menyarankannya, minta alasan, kode mana yang di-checkout, dan apakah Secrets terlihat. Untuk checklist, baca security best practices dan Git workflow.

Use case 3: deploy gate untuk staging dan production

Pola aman: push ke main otomatis deploy ke staging, sedangkan production hanya lewat workflow_dispatch dan GitHub Environment approval. Secrets production sebaiknya berada di Environment production.

# .github/workflows/deploy.yml
name: deploy

on:
  push:
    branches: [main]
  workflow_dispatch:

permissions:
  contents: read
  deployments: write

concurrency:
  group: deploy-${{ github.ref }}
  cancel-in-progress: false

jobs:
  build:
    runs-on: ubuntu-latest
    timeout-minutes: 15
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v6
        with:
          node-version: 24
          cache: npm
      - run: npm ci
      - run: npm run build

  deploy-staging:
    needs: build
    runs-on: ubuntu-latest
    timeout-minutes: 10
    environment: staging
    env:
      APP_ENV: staging
      DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v6
        with:
          node-version: 24
          cache: npm
      - run: npm ci
      - run: npm run deploy:staging

  deploy-production:
    if: github.event_name == 'workflow_dispatch'
    needs: deploy-staging
    runs-on: ubuntu-latest
    timeout-minutes: 10
    environment: production
    env:
      APP_ENV: production
      DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v6
        with:
          node-version: 24
          cache: npm
      - run: npm ci
      - run: npm run deploy:production

Saat push, workflow hanya sampai staging. Production berjalan manual dan bisa meminta reviewer dari Environment. Ini mengurangi risiko bug langsung sampai ke user setelah merge.

Use case 4: siapkan rollback sebelum insiden

Rollback harus ada sebelum production bermasalah. Workflow ini redeploy commit SHA tertentu melalui approval production.

# .github/workflows/rollback-production.yml
name: rollback-production

on:
  workflow_dispatch:
    inputs:
      target_sha:
        description: "Commit SHA to redeploy to production"
        required: true
        type: string

permissions:
  contents: read
  deployments: write

jobs:
  rollback:
    runs-on: ubuntu-latest
    timeout-minutes: 15
    environment: production
    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ inputs.target_sha }}

      - uses: actions/setup-node@v6
        with:
          node-version: 24
          cache: npm

      - run: npm ci
      - run: npm run build
      - run: npm run deploy:production

Minta Claude Code meninjau deploy.yml dan rollback-production.yml bersama: apakah commit lama masih bisa build, apakah migration database reversible, apakah env var staging dan production berbeda, dan apakah SHA yang sedang live bisa dilacak. Untuk membaca log gagal, gunakan build error triage loop.

Pitfall yang sering terjadi

Pertama, permissions: write-all. Ini sering membuat workflow cepat jalan, tetapi memperbesar dampak saat ada masalah. Mulai dari contents: read, lalu tambah permission yang benar-benar dibutuhkan.

Kedua, mencetak Secrets ke log. Jangan menjalankan echo $DEPLOY_TOKEN. Validasi nama dan scope, bukan nilai.

Ketiga, gate palsu. --if-present berguna saat migrasi, tetapi final CI harus gagal jika script wajib tidak ada.

Keempat, mengirim log raksasa ke Claude Code. Lebih efektif berikan command pertama yang gagal, baris error pertama yang relevan, perilaku yang diharapkan, dan command reproduksi lokal.

Monetisasi dan langkah berikutnya

Topik CI/CD cocok untuk monetisasi ClaudeCodeLab karena pembaca biasanya ingin mengurangi risiko produksi. Developer solo bisa mulai dari ClaudeCodeLab products untuk CLAUDE.md, prompt review, dan checklist CI. Tim yang perlu menerapkan branch protection, GitHub Actions, Secrets, approval, rollback, dan Claude Code review pada repository nyata sebaiknya mulai dari training and consultation.

Lanjutkan dengan Advanced GitHub Actions with Claude Code, testing strategies, dan security best practices. Secara praktis, langkah pertama terbaik bukan full production auto-deploy, melainkan PR quality gate dan Claude Code review mode baca. Setelah tim terbiasa membaca failure dan review evidence, baru tambahkan staging, production approval, dan rollback.

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

PDF gratis: cheatsheet Claude Code

Masukkan email dan unduh satu halaman berisi command, kebiasaan review, dan workflow aman.

Kami menjaga datamu dan tidak mengirim spam.

Masa

Tentang penulis

Masa

Engineer yang berfokus pada workflow Claude Code praktis dan adopsi tim.