hostprofi.ru
Подобрать хостинг
Термин·буква B

Bitbucket Pipelines

краткое определение

Bitbucket Pipelines — встроенная CI/CD-система в Bitbucket Cloud от Atlassian. Пайплайны описываются в файле bitbucket-pipelines.yml и выполняются в Docker-контейнерах. Тесно интегрирован с Jira, Confluence и другими продуктами Atlassian.

Bitbucket Pipelines — CI/CD-платформа, встроенная в Bitbucket Cloud (облачный Git-хостинг Atlassian). Пайплайны запускаются в Docker-контейнерах на серверах Atlassian при каждом push в репозиторий. Конфигурация в файле bitbucket-pipelines.yml в корне проекта. Идеальный выбор для команд, уже работающих в экосистеме Atlassian (Jira, Confluence).

Структура bitbucket-pipelines.yml

image: node:20

pipelines:
  default:
    - step:
        name: Build and Test
        caches:
          - node
        script:
          - npm install
          - npm test
  branches:
    main:
      - step:
          name: Deploy to Production
          deployment: production
          script:
            - pipe: atlassian/ssh-run:0.4.1
              variables:
                SSH_USER: deploy
                SERVER: $PROD_SERVER
                COMMAND: "cd /app && git pull && pm2 restart all"

Ключевые особенности

  • Pipes — готовые интеграции от Atlassian и сообщества: SSH Run, AWS Deploy, Google Cloud Run, Kubernetes — более 100 готовых действий
  • Caches — кэширование зависимостей между запусками (node_modules, pip, Maven)
  • Deployments — управление средами (test, staging, production) с историей деплоев
  • Parallel steps — параллельное выполнение шагов для ускорения пайплайна
  • Jira-интеграция — автоматическое связывание деплоев с задачами Jira через branch naming

История

Bitbucket Pipelines анонсирован в мае 2016 года как первый нативный CI/CD в Bitbucket. До этого пользователи Bitbucket были вынуждены использовать внешние сервисы (CircleCI, Travis CI). В 2021 году Atlassian добавила поддержку self-hosted runners (на собственных серверах). Бесплатный план включает 50 минут сборки в месяц — значительно меньше, чем у GitLab CI (400 минут). Платный план — $15/пользователя/мес с неограниченными минутами.

Bitbucket Pipelines vs GitLab CI

ПараметрBitbucket PipelinesGitLab CI
ЭкосистемаAtlassian (Jira, Confluence)GitLab Platform
Self-hosted runnersДа (с 2021)Да
Бесплатный план50 мин/мес400 мин/мес
On-premise версияBitbucket Data Center (отдельный)GitLab Self-Managed

Применение в хостинге

Bitbucket Pipelines используется командами в Atlassian-экосистеме (Jira + Confluence + Bitbucket). Деплой на VPS через pipe atlassian/ssh-run или кастомный скрипт с SSH-ключом из переменных окружения. Staging-среда настраивается через Deployment environments с обязательным approval для production. При превышении минутного лимита (50 мин/мес на Free) имеет смысл оптимизировать пайплайн через параллельные шаги и агрессивное кэширование, или перейти на self-hosted runner на собственном VPS — тогда ограничений по минутам нет.

Параллельные шаги и кэширование

Bitbucket Pipelines поддерживает параллельные шаги через ключ parallel: несколько тестовых наборов запускаются одновременно, сокращая общее время пайплайна. Встроенные кэши для Node.js, Maven, pip, Gradle ускоряют установку зависимостей. При кэшировании node_modules установка зависимостей сокращается с 2 минут до 10 секунд, экономя ресурс оплачиваемых минут.

Кэширование зависимостей в пайплайнах

Кэширование — ключевой инструмент ускорения пайплайнов в Bitbucket Pipelines. Пример настройки кэша для Node.js:

definitions:
  caches:
    npm: ~/.npm

pipelines:
  default:
    - step:
        caches:
          - npm
        script:
          - npm ci

Bitbucket кэширует директорию между запусками одного и того же шага. При изменении package-lock.json кэш инвалидируется автоматически. Экономия времени при включённом кэше для типичного Node.js-проекта: 2–3 минуты на каждый запуск, что при 50 запусках/месяц укладывается в бесплатный лимит 50 минут.

Другие термины