Single Beginner 14 Maret 2024 5 min
CI/CD Pipeline Basics
Introduction to Continuous Integration and Continuous Deployment pipelines
CI/CD Pipeline Basics
CI/CD (Continuous Integration/Continuous Deployment) adalah praktik otomatisasi dalam software development.
Continuous Integration (CI)
Praktik merge code changes ke main branch secara otomatis.
Key Concepts
- Automated Testing: Test jalan otomatis saat push
- Build Automation: Compile dan build otomatis
- Code Quality: Linting dan code analysis
- Merge Conflicts: Deteksi dini konflik
Continuous Deployment (CD)
Otomatis deploy code ke production setelah CI pass.
Key Concepts
- Automated Deployment: Deploy tanpa manual intervention
- Rollback: Mudah rollback jika error
- Environment Management: Manage dev, staging, production
- Monitoring: Track deployment metrics
Popular CI/CD Tools
- GitHub Actions: Integrated dengan GitHub
- GitLab CI: Built-in dengan GitLab
- Jenkins: Open-source, highly customizable
- CircleCI: Cloud-based, easy setup
- Travis CI: Popular untuk open-source
Basic Pipeline Example (GitHub Actions)
name: CI/CD Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm install
- run: npm test
deploy:
needs: test
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3
- name: Deploy to production
run: |
echo "Deploying to production..."
Pipeline Stages
- Build: Compile code
- Test: Run unit tests, integration tests
- Security: Scan vulnerabilities
- Deploy: Deploy to target environment
- Verify: Smoke tests, health checks
Best Practices
- Keep builds fast (< 10 minutes)
- Fail fast (test yang cepat dulu)
- Parallelize tests
- Use caching
- Monitor pipeline metrics