К основному содержанию
правило

circleci — правило для Cursor: что делает и как установить

Задаёт стандарты оформления пайплайнов CircleCI в проекте. Помогает генерировать надёжные конфигурации с кэшированием, reusable-командами и параллельными тестами.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/circleci.mdc
Открыть на GitHub

Что делает circleci

Правило определяет структуру конфигураций .circleci/config.yml и собственных orbs. Оно требует выносить повторяющиеся шаги в reusable commands, фиксировать версии orbs через semver и не дублировать блоки executors. Для крупных наборов тестов правило задаёт параллельный запуск с утилитой circleci tests split.

Безопасность строится на изоляции: секреты запрещено писать прямо в YAML, их нужно забирать из CircleCI Contexts. Перед вызовом sudo в скриптах проверяется переменная $EUID, чтобы не ломать контейнеры с правами root. Без настроенных контекстов в UI пайплайны с внешними сервисами упадут при выполнении.

Какие задачи решает

  • вынести повторяющиеся шаги сборки в reusable commands
  • настроить кэширование зависимостей по хэшу package-lock.json
  • разбить запуск тестов на несколько контейнеров
  • скрыть токены и ключи через CircleCI Contexts

Примеры запросов агенту

  • Добавь кэширование зависимостей и тесты в .circleci/config.yml
  • Вынеси повторяющиеся шаги развёртывания в отдельную команду
  • Настрой параллельный запуск Jest через circleci tests split

Как установить circleci

Вручную: положить файлы

.cursor/rules/circleci.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о circleci

Как установить circleci в Cursor?

Создайте файл правила по пути .cursor/rules/circleci.mdc в корне проекта. Редактор применит эти инструкции ко всем подходящим файлам.

Что делает правило circleci?

Оно обучает модель практикам CircleCI. Сюда входят версионирование orbs, объединение шагов run, кэширование и проверка прав root перед sudo.

Как правило защищает секретные ключи?

Хранить токены в открытом виде прямо в конфиге запрещено. Правило требует передавать конфиденциальные данные только через CircleCI Contexts.

Исходный текст

circleci.mdc · CC0-1.0
---
description: This guide provides opinionated, actionable best practices for writing maintainable, secure, and performant CircleCI configurations and orbs.
globs: **/*
---
# circleci Best Practices

CircleCI is the backbone of our CI/CD. Adhere to these guidelines to ensure our pipelines are efficient, secure, and maintainable.

## 1. Code Organization & Reusability

### 1.1. Author and Consume Orbs for Reusability
Encapsulate common logic into orbs. This promotes DRY principles and consistent patterns across projects.

*   **Descriptive Naming**: Use clear `namespace/orb-name` slugs.
    ❌ BAD: `myorg/plugin`, `myorg/ci-tool`
    ✅ GOOD: `myorg/docker-publish`, `myorg/aws-deploy`
*   **Semantic Versioning**: Lock to specific orb versions.
    ❌ BAD: `myorg/aws-deploy@volatile`
    ✅ GOOD: `myorg/[email protected]`
*   **Comprehensive Descriptions**: Every orb component (commands, jobs, executors, parameters) *must* have a clear `description`.

    ```yaml
    # .circleci/orb.yml
    commands:
      my-command:
        description: "Utilize this command to echo Hello to a step in the UI."
        steps:
          - run: echo "Hello"
    ```

### 1.2. Reuse Commands, Executors, and Jobs
Within your `config.yml` or orbs, define reusable components to avoid duplication.

❌ BAD:
```yaml
jobs:
  build-and-test:
    docker:
      - image: cimg/node:18.17.1
    steps:
      - checkout
      - run: npm install
      - run: npm test
  another-job:
    docker:
      - image: cimg/node:18.17.1
    steps:
      - checkout
      - run: npm install # Duplication
      - run: npm run build
```

✅ GOOD:
```yaml
# .circleci/config.yml
version: 2.1
commands:
  install_deps:
    description: "Install Node.js dependencies."
    steps:
      - run: npm install

jobs:
  build-and-test:
    docker:
      - image: cimg/node:18.17.1
    steps:
      - checkout
      - install_deps
      - run: npm test
  build-app:
    docker:
      - image: cimg/node:18.17.1
    steps:
      - checkout
      - install_deps
      - run: npm run build
```

### 1.3. Use Pass-Through Parameters in Jobs
When a job uses a command or executor that accepts parameters, expose those parameters at the job level for flexibility.

```yaml
# .circleci/orb.yml (partial)
executors:
  default:
    docker:
      - image: 'cimg/node:<<parameters.tag>>'
    parameters:
      tag:
        type: string
        default: '18.17'

jobs:
  test:
    description: "Simple job to test Node.js application."
    parameters:
      version: # Pass-through parameter for the executor's tag
        type: string
        default: '18.17'
    executor:
      name: default
      tag: << parameters.version >> # Pass parameter to executor
    steps:
      - checkout
      - run: npm test
```

## 2. Security & Configuration Management

### 2.1. Store Secrets in Contexts
**Never hard-code secrets or expose them directly in `config.yml`.** Use CircleCI Contexts for sensitive environment variables.

❌ BAD:
```yaml
jobs:
  deploy:
    steps:
      - run: echo "Deploying with API_KEY=$MY_API_KEY" # MY_API_KEY defined directly in config or as unmanaged env var
```

✅ GOOD:
```yaml
# In CircleCI UI, define a Context named 'my-app-secrets' with MY_API_KEY
jobs:
  deploy:
    docker:
      - image: cimg/base:stable
    steps:
      - run: echo "Deploying with API_KEY=$MY_API_KEY" # MY_API_KEY is loaded from 'my-app-secrets' context
workflows:
  build-and-deploy:
    jobs:
      - deploy:
          context: my-app-secrets # Apply the context to the job
```

## 3. Performance Optimization

### 3.1. Leverage Caching for Dependencies
Cache dependencies and build artifacts to significantly speed up pipeline execution.

❌ BAD:
```yaml
jobs:
  build:
    docker:
      - image: cimg/node:18.17.1
    steps:
      - checkout
      - run: npm install # Downloads dependencies every time
      - run: npm test
```

✅ GOOD:
```yaml
jobs:
  build:
    docker:
      - image: cimg/node:18.17.1
    steps:
      - checkout
      - restore_cache: # Restore cache based on package-lock.json
          keys:
            - v1-dependencies-{{ checksum "package-lock.json" }}
            - v1-dependencies- # Fallback to latest cache
      - run: npm install
      - save_cache: # Save cache if dependencies changed
          paths:
            - node_modules
          key: v1-dependencies-{{ checksum "package-lock.json" }}
      - run: npm test
```

### 3.2. Parallelize Jobs and Tests
Distribute work across multiple containers to reduce overall build time, especially for large test suites.

```yaml
jobs:
  run-tests:
    docker:
      - image: cimg/node:18.17.1
    parallelism: 4 # Run 4 containers concurrently
    steps:
      - checkout
      - run:
          name: Run parallel tests
          command: |
            # Example: split tests using a tool like 'circleci tests split'
            npx jest --json --outputFile=test-results.json --coverage --testResultsProcessor="jest-junit" \
              $(circleci tests glob "src/**/*.test.js" | circleci tests split --split-by=timings)
      - store_test_results:
          path: test-results.json
```

### 3.3. Consolidate `run` Steps
Minimize UI noise and improve readability by combining related shell commands into a single `run` step.

❌ BAD:
```yaml
steps:
  - run: pip install example
  - run: example login $MY_TOKEN
  - run: example deploy my-app
```

✅ GOOD:
```yaml
steps:
  - run:
      name: Deploy application
      command: |
        pip install example
        example login $MY_TOKEN
        example deploy my-app
```

## 4. Robust Testing & Quality Gates

### 4.1. Implement Comprehensive Testing
Automate unit, integration, and security (SAST/DAST) tests. Enforce these tests as gatekeepers before deployment.

```yaml
workflows:
  build-test-deploy:
    jobs:
      - unit-test
      - integration-test:
          requires: [unit-test]
      - security-scan:
          requires: [integration-test]
      - deploy-staging:
          requires: [security-scan]
      - hold-for-prod:
          type: approval
          requires: [deploy-staging]
      - deploy-production:
          requires: [hold-for-prod]
```

### 4.2. Serverless CI/CD Considerations
For serverless applications, include specific steps for packaging, Infrastructure as Code (IaC) validation, and canary deployments.

```yaml
jobs:
  serverless-deploy:
    docker:
      - image: cimg/python:3.9
    steps:
      - checkout
      - run: pip install serverless # Install Serverless Framework
      - run: serverless deploy --stage dev # Deploy to dev
      - run: serverless deploy --stage prod --type canary # Canary deployment
```

## 5. Common Pitfalls & Best Practices

### 5.1. Conditionally Use `sudo`
Check if the user is already root before adding `sudo` to commands.

❌ BAD:
```yaml
steps:
  - run: sudo apt-get update
```

✅ GOOD:
```yaml
steps:
  - run:
      name: Update apt packages
      command: |
        if [[ $EUID == 0 ]]; then export SUDO=""; else export SUDO="sudo"; fi
        $SUDO apt-get update
```

### 5.2. Pin Docker Image Tags
Always use specific, stable Docker image tags, not `latest`.

❌ BAD: `cimg/node:latest`
✅ GOOD: `cimg/node:18.17.1`

### 5.3. Use Admonitions in Documentation
For orb descriptions or comments in `config.yml`, use CircleCI's admonition syntax for emphasis.

```yaml
# NOTE: This command requires AWS credentials configured in a context.
# CAUTION: Deploying to production will trigger a canary release.
```

© sanjeed5 · CC0-1.0 · sanjeed5/awesome-cursor-rules-mdc

Похожие правила IDE

Все правила IDE по теме «DevOps и инфраструктура» →
circleci-config официальный CircleCI Скилл анализирует .circleci/config.yml и помогает убрать лишнюю работу из CI, настроить кэширование и распараллелить узкие места. Пригодится, когда сборки затягиваются или пайплайн часто даёт сбои. CX Codex GP ChatGPT ★ 7 624звёзд репо circleci-cli официальный CircleCI Скилл помогает управлять пайплайнами CircleCI через терминальную утилиту circleci. Пригодится для проверки статусов, валидации конфигов и точечного перезапуска сборок. CX Codex GP ChatGPT 4установок github-actions-hardening официальный github Проверяет .github/workflows/*.yml на угрозы, которых не видят линтеры: подстановку чужого текста в run:, привилегированные триггеры и незакреплённые экшены. 2 200установок azure-pipelines MicrosoftDocs Скилл помогает настраивать и разбирать Azure Pipelines: от YAML и агентов до секретов и развёртывания приложений. CX Codex +1 430установок github-actions bobmatnyc Справочник по CI/CD-пайплайнам GitHub Actions. Помогает настроить сборку, автотесты и деплой через YAML-конфигурации в репозитории. CX Codex +1 758установок gitlab-ci-generator akin-ozer Скилл генерирует и дописывает .gitlab-ci.yml: стадии, джобы, шаблоны. Пригодится, когда пайплайн нужно собрать с нуля или расширить. CX Codex +1 645установок

Из того же набора240

Весь набор →
codemirror Правило для Cursor задаёт, как писать редакторы на CodeMirror 6: модульные импорты, неизменяемое состояние, конфигурация через расширения. ★ 3 580звёзд репо cloudflare Задаёт стандарты разработки под Cloudflare Workers и Pages в Cursor. Помогает писать stateless-код для edge-рантайма, подключать базы данных и следить за размером бандла. ★ 3 580звёзд репо click Правило задаёт рекомендации по созданию CLI на Python с библиотекой click. Помогает организовать команды, параметры, вывод и подсказки. ★ 3 580звёзд репо clerk Правило для Cursor задаёт жёсткие требования к аутентификации Clerk: PKCE, серверные проверки, короткие токены. Пригодится, когда в проекте уже есть Clerk и нужен порядок в безопасности. ★ 3 580звёзд репо cheerio Правило задаёт практики для cheerio в Node.js: структура скрейперов, выбор селекторов, очистка данных и тесты. ★ 3 580звёзд репо chakra-ui Правило для Cursor задаёт, как писать интерфейсы на Chakra UI v2: тема через токены, варианты компонентов через рецепты, стилевые пропсы вместо CSS. ★ 3 580звёзд репо c-sharp Задаёт правила оформления кода на C# для Cursor: от стиля Allman и именования сущностей до внедрения зависимостей и запрета блокирующих асинхронных вызовов. ★ 3 580звёзд репо bun Правило задаёт стиль JavaScript-кода в файлах .js и .jsx: предлагает использовать инструменты Bun, современные конструкции языка и понятную структуру проекта. ★ 3 580звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой