gitlab-ci-patterns — скилл для Claude Code: CI/CD и установка
Скилл помогает собирать GitLab CI/CD-пайплайны со стадиями, кэшем и деплоем. Подойдёт для тестирования, сборки и доставки приложений.
/plugin marketplace add wshobson/agents
/plugin install cicd-automation@claude-code-workflowsЧто делает gitlab-ci-patterns
gitlab-ci-patterns описывает пайплайны GitLab CI/CD для стадий build, test и deploy. В примерах есть сборка Node.js с артефактами и кэшем, Docker build и push, проверка покрытия, ручной production-деплой и отслеживание окружений. Отдельные шаблоны показывают работу с Kubernetes, Terraform и динамическими дочерними пайплайнами.
Скилл также предлагает подключить SAST, Dependency Scanning и Container Scanning, а для образов использовать Trivy. Для деплоя в Kubernetes нужны переменные KUBE_URL, KUBE_CA_CERT_FILE и защищённая скрытая переменная KUBE_TOKEN; конфигурация использует kubectl. В Terraform-примере задан TF_VERSION и путь TF_ROOT.
Ставьте его, если вы настраиваете GitLab CI/CD или пересобираете структуру пайплайна. Для проекта без GitLab этот скилл лучше не использовать.
Какие задачи решает
- собрать многоэтапный GitLab CI/CD-пайплайн
- закэшировать зависимости и сохранить артефакты сборки
- настроить Docker build и push в GitLab Registry
- развести staging и production через Kubernetes
- добавить Terraform plan/apply и проверки безопасности
Примеры запросов агенту
- Собери GitLab CI/CD-пайплайн со стадиями build, test и deploy для Node.js.
- Настрой Docker build и push в GitLab Registry только для main и tags.
- Добавь staging и production-деплой в Kubernetes с ручным apply для production.
Как установить gitlab-ci-patterns
1Через маркетплейс плагинов
/plugin marketplace add wshobson/agents/plugin install cicd-automation@claude-code-workflows2Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill gitlab-ci-patterns -a claude-code3Вручную: положить файлы
~/.claude/skills/gitlab-ci-patterns/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/gitlab-ci-patterns/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill gitlab-ci-patterns -a codex2Вручную: положить файлы
.agents/skills/gitlab-ci-patterns/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill gitlab-ci-patterns -a cursor2Вручную: положить файлы
.cursor/skills/gitlab-ci-patterns/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wshobson/agents gitlab-ci-patterns2Вручную: положить файлы
.github/skills/gitlab-ci-patterns/SKILL.mdКомандой платформы
gemini skills install https://github.com/wshobson/agents --path plugins/cicd-automation/skills/gitlab-ci-patternsВручную: положить файлы
.devin/skills/gitlab-ci-patterns/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Похожие
Вопросы о gitlab-ci-patterns
Как установить gitlab-ci-patterns в Claude Code?
Выполните npx skills add wshobson/agents --skill gitlab-ci-patterns -a claude-code. Скилл появится в ~/.claude/skills/gitlab-ci-patterns/SKILL.md.
Что делает gitlab-ci-patterns?
Скилл помогает проектировать GitLab CI/CD с отдельными стадиями, кэшированием, артефактами, ручными деплоями и проверками безопасности. Он также содержит примеры для Docker, Kubernetes и Terraform.
Что нужно для деплоя в Kubernetes из GitLab CI?
Нужны KUBE_URL, файл-переменная KUBE_CA_CERT_FILE с сертификатом CA кластера и защищённая скрытая переменная KUBE_TOKEN. Для применения конфигурации используется kubectl.
Исходный текст
SKILL.md · MIT
---
name: gitlab-ci-patterns
description: Build GitLab CI/CD pipelines with multi-stage workflows, caching, and distributed runners for scalable automation. Use when implementing GitLab CI/CD, optimizing pipeline performance, or setting up automated testing and deployment.
---
# GitLab CI Patterns
Comprehensive GitLab CI/CD pipeline patterns for automated testing, building, and deployment.
## Purpose
Create efficient GitLab CI pipelines with proper stage organization, caching, and deployment strategies.
## When to Use
- Automate GitLab-based CI/CD
- Implement multi-stage pipelines
- Configure GitLab Runners
- Deploy to Kubernetes from GitLab
- Implement GitOps workflows
## Basic Pipeline Structure
```yaml
stages:
- build
- test
- deploy
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: "/certs"
build:
stage: build
image: node:20
script:
- npm ci
- npm run build
artifacts:
paths:
- dist/
expire_in: 1 hour
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
test:
stage: test
image: node:20
script:
- npm ci
- npm run lint
- npm test
coverage: '/Lines\s*:\s*(\d+\.\d+)%/'
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage/cobertura-coverage.xml
deploy:
stage: deploy
image: bitnami/kubectl:1.31
script:
- kubectl apply -f k8s/
- kubectl rollout status deployment/my-app
only:
- main
environment:
name: production
url: https://app.example.com
```
## Docker Build and Push
```yaml
build-docker:
stage: build
image: docker:24
services:
- docker:24-dind
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- docker build -t $CI_REGISTRY_IMAGE:latest .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
- docker push $CI_REGISTRY_IMAGE:latest
only:
- main
- tags
```
## Multi-Environment Deployment
Set `KUBE_CA_CERT_FILE` as a GitLab file variable containing the cluster CA certificate,
and provide `KUBE_TOKEN` through a protected, masked CI variable. The file variable
contains a path that kubectl uses to verify the API server certificate. Protect both
`develop` and `main` so the deployment jobs can read the protected token.
```yaml
.deploy_template: &deploy_template
image: bitnami/kubectl:1.31
before_script:
- kubectl config set-cluster k8s --server="$KUBE_URL" --certificate-authority="$KUBE_CA_CERT_FILE" --embed-certs=true
- kubectl config set-credentials admin --token="$KUBE_TOKEN"
- kubectl config set-context default --cluster=k8s --user=admin
- kubectl config use-context default
deploy:staging:
<<: *deploy_template
stage: deploy
script:
- kubectl apply -f k8s/ -n staging
- kubectl rollout status deployment/my-app -n staging
environment:
name: staging
url: https://staging.example.com
only:
- develop
deploy:production:
<<: *deploy_template
stage: deploy
script:
- kubectl apply -f k8s/ -n production
- kubectl rollout status deployment/my-app -n production
environment:
name: production
url: https://app.example.com
when: manual
only:
- main
```
## Terraform Pipeline
```yaml
stages:
- validate
- plan
- apply
variables:
TF_ROOT: ${CI_PROJECT_DIR}/terraform
TF_VERSION: "1.6.0"
before_script:
- cd ${TF_ROOT}
- terraform --version
validate:
stage: validate
image: hashicorp/terraform:${TF_VERSION}
script:
- terraform init -backend=false
- terraform validate
- terraform fmt -check
plan:
stage: plan
image: hashicorp/terraform:${TF_VERSION}
script:
- terraform init
- terraform plan -out=tfplan
artifacts:
paths:
- ${TF_ROOT}/tfplan
expire_in: 1 day
apply:
stage: apply
image: hashicorp/terraform:${TF_VERSION}
script:
- terraform init
- terraform apply -auto-approve tfplan
dependencies:
- plan
when: manual
only:
- main
```
## Security Scanning
```yaml
include:
- template: Security/SAST.gitlab-ci.yml
- template: Security/Dependency-Scanning.gitlab-ci.yml
- template: Security/Container-Scanning.gitlab-ci.yml
trivy-scan:
stage: test
image: aquasec/trivy:0.58.0
script:
- trivy image --exit-code 1 --severity HIGH,CRITICAL $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
allow_failure: true
```
## Caching Strategies
```yaml
# Cache node_modules
build:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
policy: pull-push
# Global cache
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- .cache/
- vendor/
# Separate cache per job
job1:
cache:
key: job1-cache
paths:
- build/
job2:
cache:
key: job2-cache
paths:
- dist/
```
## Dynamic Child Pipelines
```yaml
generate-pipeline:
stage: build
script:
- python generate_pipeline.py > child-pipeline.yml
artifacts:
paths:
- child-pipeline.yml
trigger-child:
stage: deploy
trigger:
include:
- artifact: child-pipeline.yml
job: generate-pipeline
strategy: depend
```
## Best Practices
1. **Use specific image tags** (node:20, not node:latest)
2. **Cache dependencies** appropriately
3. **Use artifacts** for build outputs
4. **Implement manual gates** for production
5. **Use environments** for deployment tracking
6. **Enable merge request pipelines**
7. **Use pipeline schedules** for recurring jobs
8. **Implement security scanning**
9. **Use CI/CD variables** for secrets
10. **Monitor pipeline performance**
## Related Skills
- `github-actions-templates` - For GitHub Actions
- `deployment-pipeline-design` - For architecture
- `secrets-management` - For secrets handling
© Seth Hobson · MIT · wshobson/agents