npx claudepluginhub thebushidocollective/han --plugin gitlab-ciThis skill is limited to using the following tools:
Configure artifacts and caching for efficient pipeline execution.
Builds GitLab CI/CD pipelines with multi-stage workflows, caching, Docker builds/pushes, and Kubernetes deployments. Use for automating testing, building, and multi-environment deploys.
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.
Provides CI/CD pipeline knowledge base for GitHub Actions and GitLab CI, covering stages, caching strategies, parallelization, artifacts, and environment management. Useful for pipeline design and troubleshooting.
Share bugs, ideas, or general feedback.
Configure artifacts and caching for efficient pipeline execution.
build:
script:
- npm run build
artifacts:
paths:
- dist/
expire_in: 1 week
test:
script:
- npm test -- --coverage
artifacts:
reports:
junit: junit.xml
coverage_report:
coverage_format: cobertura
path: coverage/cobertura-coverage.xml
build:
artifacts:
paths:
- dist/
when: on_success # on_success, on_failure, always
exclude:
- dist/**/*.map
build:
artifacts:
paths:
- dist/
test:
dependencies:
- build # Downloads build artifacts
script:
- npm test
deploy:
dependencies: [] # Skip all artifact downloads
script:
- ./deploy.sh
default:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
- .npm/
# Per-branch cache
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
# Lock file based cache
cache:
key:
files:
- package-lock.json
paths:
- node_modules/
# Combined key
cache:
key:
prefix: ${CI_JOB_NAME}
files:
- package-lock.json
paths:
- node_modules/
install:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
policy: push # Only upload cache
script:
- npm ci
test:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
policy: pull # Only download cache
script:
- npm test
cache:
key: ${CI_COMMIT_REF_SLUG}
fallback_keys:
- ${CI_DEFAULT_BRANCH}
- main
paths:
- node_modules/
Configure in GitLab Runner:
[runners.cache]
Type = "s3"
Shared = true
[runners.cache.s3]
ServerAddress = "s3.amazonaws.com"
BucketName = "gitlab-runner-cache"
BucketLocation = "us-east-1"
| Feature | Artifacts | Cache |
|---|---|---|
| Purpose | Pass data between jobs | Speed up job execution |
| Storage | GitLab server | Runner local or S3 |
| Reliability | Guaranteed | Best effort |
| Expiration | Configurable | Configurable |
| Cross-pipeline | Yes (with dependencies) | Yes (with keys) |
policy: pull for jobs that only read cache