/ci-cd-pipelines
CI/CD pipeline patterns for GitHub Actions, GitLab CI, testing strategies, and deployment automation
$ npx -y skills add rohitg00/awesome-claude-code-toolkit --skill ci-cd-pipelines --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/ci-cd-pipelines
Context preview
The summary Claude sees to decide when to auto-load this skill.
CI/CD pipeline patterns for GitHub Actions, GitLab CI, testing strategies, and deployment automation
SKILL.md
ci-cd-pipelines.SKILL.mdname: ci-cd-pipelines
description: CI/CD pipeline patterns for GitHub Actions, GitLab CI, testing strategies, and deployment automation
CI/CD Pipelines
GitHub Actions Workflow
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run typecheck
test:
runs-on: ubuntu-latest
needs: lint
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: test
POSTGRES_USER: test
POSTGRES_PASSWORD: test
ports: ["5432:5432"]
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm test -- --coverage
env:
DATABASE_URL: postgres://test:test@localhost:5432/test
- uses: codecov/codecov-action@v4
deploy:
runs-on: ubuntu-latest
needs: test
if: github.ref == 'refs/heads/main'
environment: production
steps:
- uses: actions/checkout@v4
- run: ./scripts/deploy.shUse `concurrency` to cancel stale runs. Use `needs` to define job dependencies.
GitLab CI Pipeline
stages:
- validate
- test
- build
- deploy
variables:
NODE_IMAGE: node:22-alpine
lint:
stage: validate
image: $NODE_IMAGE
cache:
key: $CI_COMMIT_REF_SLUG
paths: [node_modules/]
script:
- npm ci
- npm run lint
- npm run typecheck
test:
stage: test
image: $NODE_IMAGE
services:
- postgres:16
variables:
POSTGRES_DB: test
DATABASE_URL: postgres://runner:@postgres:5432/test
script:
- npm ci
- npm test -- --coverage
coverage: '/Statements\s*:\s*(\d+\.?\d*)%/'
artifacts:
reports:
junit: coverage/junit.xml
coverage_report:
coverage_format: cobertura
path: coverage/cobertura.xml
build:
stage: build
image: docker:24
services: [docker:24-dind]
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
rules:
- if: $CI_COMMIT_BRANCH == "main"
deploy:
stage: deploy
environment:
name: production
url: https://app.example.com
script:
- ./deploy.sh $CI_COMMIT_SHA
rules:
- if: $CI_COMMIT_BRANCH == "main"
when: manualReusable GitHub Action
# .github/actions/setup/action.yml
name: Setup
description: Install dependencies and cache
inputs:
node-version:
default: "22"
runs:
using: composite
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
cache: npm
- run: npm ci
shell: bash# Usage in workflow
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: npm test
Matrix Strategy
test:
strategy:
fail-fast: false
matrix:
node: [20, 22]
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- run: npm ci && npm testAnti-Patterns
- Not caching dependencies (npm, pip, cargo) between runs
- Running all jobs sequentially when lint and test can parallelize
- Storing secrets in workflow files instead of repository/environment secrets
- Missing `concurrency` groups causing redundant CI runs on rapid pushes
- Not using `fail-fast: false` in matrix builds (one failure cancels others)
- Deploying without an approval gate or environment protection rule
Checklist
- [ ] Dependencies cached between CI runs
- [ ] Concurrency groups cancel stale pipeline runs
- [ ] Lint, typecheck, and test run as separate parallelizable jobs
- [ ] Database services use health checks before tests start
- [ ] Coverage reports uploaded and tracked
- [ ] Deploy job requires approval for production
- [ ] Reusable actions/templates extract common setup steps
- [ ] Secrets stored in CI platform, never in code
Read more
name: ci-cd-pipelines description: CI/CD pipeline patterns for GitHub Actions, GitLab CI, testing strategies, and deployment automation
CI/CD Pipelines
GitHub Actions Workflow
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run typecheck
test:
runs-on: ubuntu-latest
needs: lint
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: test
POSTGRES_USER: test
POSTGRES_PASSWORD: test
ports: ["5432:5432"]
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm test -- --coverage
env:
DATABASE_URL: postgres://test:test@localhost:5432/test
- uses: codecov/codecov-action@v4
deploy:
runs-on: ubuntu-latest
needs: test
if: github.ref == 'refs/heads/main'
environment: production
steps:
- uses: actions/checkout@v4
- run: ./scripts/deploy.shUse `concurrency` to cancel stale runs. Use `needs` to define job dependencies.
GitLab CI Pipeline
stages:
- validate
- test
- build
- deploy
variables:
NODE_IMAGE: node:22-alpine
lint:
stage: validate
image: $NODE_IMAGE
cache:
key: $CI_COMMIT_REF_SLUG
paths: [node_modules/]
script:
- npm ci
- npm run lint
- npm run typecheck
test:
stage: test
image: $NODE_IMAGE
services:
- postgres:16
variables:
POSTGRES_DB: test
DATABASE_URL: postgres://runner:@postgres:5432/test
script:
- npm ci
- npm test -- --coverage
coverage: '/Statements\s*:\s*(\d+\.?\d*)%/'
artifacts:
reports:
junit: coverage/junit.xml
coverage_report:
coverage_format: cobertura
path: coverage/cobertura.xml
build:
stage: build
image: docker:24
services: [docker:24-dind]
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
rules:
- if: $CI_COMMIT_BRANCH == "main"
deploy:
stage: deploy
environment:
name: production
url: https://app.example.com
script:
- ./deploy.sh $CI_COMMIT_SHA
rules:
- if: $CI_COMMIT_BRANCH == "main"
when: manualReusable GitHub Action
# .github/actions/setup/action.yml
name: Setup
description: Install dependencies and cache
inputs:
node-version:
default: "22"
runs:
using: composite
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
cache: npm
- run: npm ci
shell: bash# Usage in workflow steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - run: npm test
Matrix Strategy
test:
strategy:
fail-fast: false
matrix:
node: [20, 22]
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- run: npm ci && npm testAnti-Patterns
- Not caching dependencies (npm, pip, cargo) between runs
- Running all jobs sequentially when lint and test can parallelize
- Storing secrets in workflow files instead of repository/environment secrets
- Missing `concurrency` groups causing redundant CI runs on rapid pushes
- Not using `fail-fast: false` in matrix builds (one failure cancels others)
- Deploying without an approval gate or environment protection rule
Checklist
- [ ] Dependencies cached between CI runs
- [ ] Concurrency groups cancel stale pipeline runs
- [ ] Lint, typecheck, and test run as separate parallelizable jobs
- [ ] Database services use health checks before tests start
- [ ] Coverage reports uploaded and tracked
- [ ] Deploy job requires approval for production
- [ ] Reusable actions/templates extract common setup steps
- [ ] Secrets stored in CI platform, never in code
The most comprehensive toolkit for Claude Code -- 135 agents, 35 curated skills (+400,000 via SkillKit), 42 commands, 176+ plugins, 20 hooks, 15 rules, 7 templates, 15 MCP configs, 26 companion apps, 53 ecosystem entries, and more.
Repo: rohitg00/awesome-claude-code-toolkit
Other skills on rohitg00-claude-code-toolkit.
- /accessibility-wcag
Web accessibility patterns for WCAG 2.2 compliance including ARIA, keyboard navigation, screen readers, and testing
Open skill - /agentkit-seo
Route broad or ambiguous AgentKit SEO work to the right module while keeping context scoped. Use when a request spans multiple surfaces, asks for overall digital-presence strategy, involves provider or install architecture, needs agent-context planning, or the correct platform
Open skill - /api-design-patterns
REST API design with resource naming, pagination, versioning, and OpenAPI spec generation
Open skill - /authentication-patterns
Authentication and authorization patterns including OAuth2, JWT, RBAC, session management, and PKCE flows
Open skill - /aws-cloud-patterns
AWS cloud patterns for Lambda, ECS, S3, DynamoDB, and Infrastructure as Code with CDK/Terraform
Open skill - /claude-memory-kit
Persistent memory system for Claude Code. Two-layer architecture (hot cache + knowledge wiki), safety hooks, /close-day end-of-day synthesis. Zero external dependencies.
Open skill

