π What is a CI/CD Pipeline?
CI/CD stands for:
- CI = Continuous Integration
- CD = Continuous Delivery / Continuous Deployment
A CI/CD pipeline is an automated process that helps build, test, and deploy your code quickly, reliably, and consistently across environments (like dev, staging, production).
β 1. Continuous Integration (CI)
CI means:
- Developers frequently push code to a shared repository (like GitHub, GitLab).
- Every push triggers automated builds and tests.
- This helps catch bugs early and ensures code stays stable.
Example:
git push origin main # Trigger: Build β Unit Test β Lint β Package
β 2. Continuous Delivery (CD)
CD means:
- After passing tests in CI, code is automatically packaged and ready to deploy to staging or production.
- Deployment may still require manual approval.
β 3. Continuous Deployment
A step beyond Continuous Delivery:
- Code is automatically deployed to production without manual approval if all tests pass.
- Used when teams have high confidence in test coverage.
π¦ Typical CI/CD Pipeline Stages
Stage | What It Does |
---|---|
Source | Code pushed to GitHub/GitLab triggers pipeline |
Build | Compiles Angular/Backend code |
Test | Runs unit/integration tests |
Lint | Code formatting and static analysis |
Package | Generates build artifacts (e.g., .zip, Docker) |
Deploy | Push to dev/staging/production server |
π οΈ Tools for CI/CD
Type | Examples |
---|---|
CI/CD Tools | GitHub Actions, GitLab CI/CD, Jenkins, Azure DevOps, CircleCI |
Build Tools | Webpack, MSBuild, dotnet CLI |
Deployment | Docker, Kubernetes, Azure App Services, AWS Elastic Beanstalk |
π§ Why Use CI/CD?
- β Faster delivery of features and fixes
- β Early bug detection
- β Consistency and repeatability
- β Less manual work = fewer errors
- β Easy rollback and monitoring
π Example (Angular + .NET Core with GitHub Actions):
name: Build and Deploy on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v2 with: node-version: '16' - name: Install Angular run: npm install -g @angular/cli - name: Install Dependencies run: npm install - name: Build Angular run: ng build --prod - name: Setup .NET uses: actions/setup-dotnet@v2 with: dotnet-version: '7.0.x' - name: Build .NET API run: dotnet build - name: Run Tests run: dotnet test # Add deployment step if needed
Happy Coding!
Top comments (0)