From gitlab-ci
Configures GitLab CI/CD pipelines with stages, workflow rules, needs for DAG execution, parallel jobs, and includes. Optimizes structure, ordering, and flow for efficient CI/CD.
npx claudepluginhub thebushidocollective/han --plugin gitlab-ciThis skill is limited to using the following tools:
Configure GitLab CI/CD pipelines with proper stage ordering, workflow rules, and execution flow.
Optimizes GitLab CI/CD pipelines for performance, reliability, and maintainability using DAGs, parallel jobs, templates, resource groups, retries, and protected rules.
Generates production-ready GitLab CI/CD pipelines (.gitlab-ci.yml), stages, and jobs following best practices; validates syntax and compliance for builds, deploys, and scans.
Designs and implements GitLab CI/CD pipelines with stages, jobs, artifacts, caching, runners, Docker integration, and Kubernetes deployments. Useful for automating build, test, and release workflows.
Share bugs, ideas, or general feedback.
Configure GitLab CI/CD pipelines with proper stage ordering, workflow rules, and execution flow.
# .gitlab-ci.yml
stages:
- build
- test
- deploy
default:
image: node:20-alpine
before_script:
- npm ci --cache .npm --prefer-offline
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- .npm/
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
stages:
- install
- lint
- test
- build
- deploy
test:unit:
stage: test
script: npm run test:unit
test:integration:
stage: test
script: npm run test:integration
test:e2e:
stage: test
script: npm run test:e2e
workflow:
rules:
- if: $CI_COMMIT_BRANCH == "main"
variables:
DEPLOY_ENV: production
- if: $CI_COMMIT_BRANCH =~ /^release\//
variables:
DEPLOY_ENV: staging
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_TAG
workflow:
auto_cancel:
on_new_commit: interruptible
build:
stage: build
script: npm run build
test:unit:
stage: test
needs: ["build"]
script: npm run test:unit
test:lint:
stage: test
needs: [] # No dependencies, runs immediately
script: npm run lint
deploy:
stage: deploy
needs: ["build", "test:unit"]
script: npm run deploy
include:
- local: .gitlab/ci/build.yml
- local: .gitlab/ci/test.yml
- project: 'my-group/my-templates'
ref: main
file: '/templates/deploy.yml'
- template: Security/SAST.gitlab-ci.yml
needs to optimize pipeline executioninclude to split large configurationsinterruptible flags for cancelable jobs