Belajar Git Branching Strategies - CI/CD Integration dengan Branching Strategy
Episode 17 of 21

Belajar Git Branching Strategies - CI/CD Integration dengan Branching Strategy

Pipeline trigger berdasarkan branch prefix: feature ke lint & unit test, develop ke integration test, main ke full test & staging, hotfix ke production path, serta environment deployment strategy dengan canary dan blue-green deployment via branching.

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 16 kita mempelajari Branch Protection & Rulesets — bagaimana mengamankan branch utama — pada episode ini kita membahas bagaimana CI/CD pipeline terintegrasi dengan branching strategy. Pipeline yang berbeda untuk branch yang berbeda mengoptimalkan waktu dan resource.

Tidak semua branch membutuhkan test suite yang sama: feature branch cukup lint + unit test, sementara main membutuhkan full test + staging deployment.

Pipeline Trigger Berdasarkan Branch

Feature Branch (feature/*)

CI untuk feature branch
on:
  push:
    branches: ['feature/**']
jobs:
  lint:
    runs-on: ubuntu-latest
    steps: [npm run lint]
  unit-test:
    runs-on: ubuntu-latest
    steps: [npm test -- --unit]

Cukup lint dan unit test — cepat dan murah. Feedback untuk developer dalam hitungan menit.

Develop Branch

CI untuk develop branch
on:
  push:
    branches: ['develop']
jobs:
  integration-test:
    runs-on: ubuntu-latest
    steps: [npm test -- --integration]
  e2e-test:
    runs-on: ubuntu-latest
    steps: [npm run test:e2e]

Integration test dan E2E test berjalan — lebih lama tetapi memastikan kode stabil.

Main / Release Branch

CI untuk main branch
on:
  push:
    branches: ['main', 'release/**']
jobs:
  full-test:
    runs-on: ubuntu-latest
    steps: [npm test]
  build:
    runs-on: ubuntu-latest
    steps: [npm run build]
  deploy-staging:
    needs: [full-test, build]
    steps: [./deploy.sh staging]

Full test suite + build + deploy ke staging. Production deploy membutuhkan approval manual.

Hotfix Branch (hotfix/*)

CI untuk hotfix branch
on:
  push:
    branches: ['hotfix/**']
jobs:
  full-test:
    runs-on: ubuntu-latest
    steps: [npm test]
  deploy-production:
    needs: [full-test]
    steps: [./deploy.sh production]

Hotfix melewati staging → langsung ke production (setelah approval).

Environment Deployment Strategy

Branch to Environment Mapping

BranchTarget EnvironmentApproval
feature/*Dev / PreviewTidak perlu
developDevelopmentTidak perlu
mainStagingTidak perlu
main + tagProductionManual approval
hotfix/*ProductionManual approval
100%

Manual Approval Gate

Production deploy selalu membutuhkan approval manual. Ini bisa dikonfigurasi di GitHub Actions:

Approval gate untuk production
deploy-production:
  needs: [deploy-staging]
  environment:
    name: production
  runs-on: ubuntu-latest
  steps:
    - run: ./deploy.sh production

GitHub akan menampilkan tombol "Approve" yang harus diklik sebelum deploy berjalan.

Canary & Blue-Green Deployment via Branching

Canary Deployment

Deploy ke sebagian kecil user terlebih dahulu:

100%

Canary deployment menggunakan branch atau tag untuk menandai versi canary.

Blue-Green Deployment

Dua environment identik — blue (production saat ini) dan green (versi baru):

Blue-green deployment switching
# Deploy ke green
./deploy.sh green
 
# Switch traffic dari blue ke green
./switch-traffic.sh green
 
# Rollback jika ada masalah
./switch-traffic.sh blue

Branch blue dan green bisa digunakan untuk menandai versi di setiap environment.

Note

Canary dan blue-green deployment adalah advanced patterns yang membutuhkan infrastructure yang sesuai (load balancer, container orchestration). Untuk deployment sederhana, cukup gunakan staging + approval gate.

Penutup

Pada episode 17 ini, kalian telah memahami CI/CD Integration:

  • Pipeline trigger berbeda berdasarkan branch: feature (lint + unit), develop (integration), main (full + staging), hotfix (production path).
  • Environment mapping: feature ke dev, develop ke development, main ke staging, tag ke production.
  • Manual approval gate untuk production deploy — mengurangi risiko deploy berisiko.
  • Canary deployment: deploy 1% user terlebih dahulu, monitor, full rollout.
  • Blue-green deployment: dua environment, switch traffic.

Di episode 18 selanjutnya kita akan mempelajari Monorepo Branching Strategy — tantangan branch yang sama mempengaruhi banyak package, path-based filtering di CI, dan CODEOWNERS per package. Sampai jumpa di episode 18!

Belajar Git Branching Strategies - CI/CD Integration dengan Branching Strategy | Belajar Git Branching Strategies