ci-cd-pipelines

timequity's avatarfrom timequity

CI/CD pipeline design with GitHub Actions, GitLab CI, and best practices.

⭐0stars🔀0forks📁View on GitHub🕐Updated Dec 18, 2025

When & Why to Use This Skill

This Claude skill provides a comprehensive framework for designing and implementing robust CI/CD pipelines using GitHub Actions and GitLab CI. It helps teams automate the software delivery lifecycle—from automated testing and containerization to secure production deployments—ensuring faster release cycles, reduced manual errors, and high-quality code delivery through industry-standard DevOps best practices.

Use Cases

  • Automating Build and Test Workflows: Setting up automated triggers for unit testing and Docker image building on every pull request to ensure code stability.
  • Secure Cloud Integration: Implementing OIDC-based authentication for GitHub Actions to deploy securely to AWS or Kubernetes without managing long-lived secrets.
  • Advanced Deployment Strategies: Designing and executing Blue-Green, Canary, or Rolling deployment patterns to minimize downtime and enable rapid rollbacks.
  • Pipeline Performance Optimization: Applying caching strategies and parallel job execution to reduce feedback loops and accelerate the development-to-production pipeline.
nameci-cd-pipelines
descriptionCI/CD pipeline design with GitHub Actions, GitLab CI, and best practices.

CI/CD Pipelines

GitHub Actions

name: CI/CD

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

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      - run: npm ci
      - run: npm test

  build:
    needs: test
    runs-on: ubuntu-latest
    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/build-push-action@v5
        with:
          push: true
          tags: ghcr.io/${{ github.repository }}:${{ github.sha }}

  deploy:
    needs: build
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: Deploy to Kubernetes
        run: |
          kubectl set image deployment/app \
            app=ghcr.io/${{ github.repository }}:${{ github.sha }}

Pipeline Stages

Commit → Build → Test → Security → Deploy → Smoke Test
           │       │       │
           └───────┴───────┴── Parallel

Best Practices

  • Fast feedback - Tests < 10 min
  • Fail fast - Critical checks first
  • Cache dependencies - Avoid re-downloading
  • Immutable artifacts - Tag with commit SHA
  • Environment parity - Same image everywhere
  • Rollback ready - Quick revert capability

Secrets Management

# GitHub Actions
env:
  DATABASE_URL: ${{ secrets.DATABASE_URL }}

# With OIDC (no secrets)
- uses: aws-actions/configure-aws-credentials@v4
  with:
    role-to-assume: arn:aws:iam::123456789:role/github-actions
    aws-region: us-east-1

Deployment Strategies

Strategy Risk Rollback
Rolling Low Slow
Blue-Green Low Fast
Canary Very Low Fast
Recreate High Fast