From wicked-garden
Write secure, optimized GitLab CI/CD pipelines. Use when: "create CI/CD pipeline", "GitLab CI config", "fix pipeline", ".gitlab-ci.yml", "configure runners", "pipeline optimization"
npx claudepluginhub mikeparcewski/wicked-garden --plugin wicked-gardenThis skill uses the workspace's default tool permissions.
Write production-ready GitLab CI/CD pipelines with security and optimization built in.
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
Write production-ready GitLab CI/CD pipelines with security and optimization built in.
# .gitlab-ci.yml
stages:
- build
- test
- deploy
variables:
NODE_VERSION: "20"
build:
stage: build
script:
- npm ci
- npm run build
artifacts:
paths:
- dist/
| Concept | GitHub Actions | GitLab CI |
|---|---|---|
| Config | .github/workflows/*.yml | .gitlab-ci.yml |
| Grouping | jobs: | stages: |
| Triggers | on: | rules: |
| Secrets | ${{ secrets.X }} | $VARIABLE |
| Artifacts | actions/upload-artifact | Built-in |
| Caching | actions/cache | Built-in |
deploy:
script:
- deploy --token $DEPLOY_TOKEN
# Set DEPLOY_TOKEN as protected in GitLab UI
deploy:
rules:
- if: $CI_COMMIT_BRANCH == "main"
when: manual # Require approval
- when: never
default:
cache:
key:
files:
- package-lock.json
paths:
- node_modules/
deploy:
needs:
- build-frontend
- build-backend
# Starts when both complete, skips waiting for whole stage
build:
rules:
- changes:
- src/**/*
- package.json
test:
parallel: 4
script:
- npm test -- --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL
include:
- local: .gitlab/ci/build.yml
- template: Security/SAST.gitlab-ci.yml
test:
services:
- postgres:15
variables:
DATABASE_URL: postgresql://postgres@postgres/test
.deploy: &deploy
script: deploy.sh
when: manual
deploy-staging:
<<: *deploy
environment: staging
rules:
- if: $CI_COMMIT_BRANCH == "develop"
deploy-production:
<<: *deploy
environment: production
rules:
- if: $CI_COMMIT_BRANCH == "main"
refs/templates.md - Copy-paste templates for Node.js, Python, Docker, K8srefs/troubleshooting.md - Common errors and fixes