Налаштування CI/CD для сайту через Bitbucket Pipelines
Ми часто зустрічаємо проекти, де деплой робиться вручну через FTP — це призводить до помилок та втрат. В одному проекті з Symfony-сайтом ручний деплой займав 40 хвилин, і кожен п'ятий викат доводилося відкочувати через забуту міграцію. Після впровадження Bitbucket Pipelines процес скоротився до 8 хвилин, а кількість збоїв впала до нуля. Більше того, команда перестала витрачати час на узгодження викатів — pipeline виконує всі перевірки автоматично.
Налаштовуємо CI/CD у Bitbucket Pipelines так, щоб кожна збірка проходила статичний аналіз, модульні тести та інтеграційні перевірки, а потім автономно їхала на сервер. Це не тільки прискорює релізи, але й виключає людський фактор: забуті міграції, невірні конфіги, пропущені залежності.
Проблеми, які вирішуємо
- Різні оточення: staging і production часто відрізняються конфігами. Pipelines дозволяє задати свої змінні для кожного деплой-оточення.
- Довгі ручні деплої: один клік — і збірка з тестами запускається автоматично. Не потрібно чекати розробника.
- Помилки в конфігурації: часто плутають SSH-ключі або забувають встановити залежності. Ми прописуємо все в yml, а
after-scriptсповістить про проблему. - Відсутність тестів: багато проектів не мають автоматичних перевірок. Ми вбудовуємо статичний аналіз, модульні тести та лінтер прямо в пайплайн. Наприклад, для фронтенд-проекту на React 18 з TypeScript додали ESLint, Jest та Playwright — пайплайн одразу виявляє regression.
Як працює CI/CD у Bitbucket Pipelines?
Bitbucket Pipelines вбудований в репозиторій — не потрібен окремий CI-сервер. Ви описуєте кроки у файлі bitbucket-pipelines.yml, і Bitbucket виконує їх у Docker-контейнері. На відміну від GitLab CI, налаштування займає в 2 рази менше часу: не потрібно керувати раннерами. Безкоштовно дається 50 хвилин збірки на місяць, платні плани знімають обмеження (від $10/міс).
Процес налаштування
- Аудит репозиторію: визначаємо стек, тести, оточення.
- Створення
bitbucket-pipelines.yml: пишемо кроки збірки, тестів, деплою. - Налаштування змінних: задаємо секрети (SSH-ключі, токени) у Repository Settings.
- Конфігурація оточень: створюємо staging і production з ручним схваленням.
- Тестування: проганяємо pipeline на тестовій гілці.
- Документація: описуємо процес запуску та відкату.
Приклад: базова конфігурація для Node.js і деплой через rsync
image: node:20-alpine pipelines: branches: main: - step: name: Test caches: - node script: - npm ci - npm test - step: name: Build caches: - node script: - npm ci - npm run build artifacts: - dist/** - step: name: Deploy deployment: production script: - apt-get update && apt-get install -y openssh-client rsync - mkdir -p ~/.ssh - echo "$SSH_PRIVATE_KEY" | base64 -d > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts - rsync -avz --delete dist/ deploy@$DEPLOY_HOST:/var/www/mysite/ pull-requests: '**': - step: name: Test PR script: - npm ci - npm test - npm run lint Продвинуті можливості
Змінні оточення та артефакти
Змінні зберігаються в Repository Settings → Repository variables. Флаг secured приховує значення в логах. Артефакти передають файли між кроками — наприклад, dist/ та .env.production. Зберігаються 14 днів, достатньо для відладки. Порівняємо налаштування для оточень:
| Параметр | Staging | Production |
|---|---|---|
| Змінна DB_HOST | staging.db.example.com | prod.db.example.com |
| Dev-збірка | включена | вимкнена |
Паралельні кроки та ручний тригер
Паралельні кроки прискорюють pipeline — тести, лінтер та E2E запускаються одночасно. Для продакшену використовуємо trigger: manual, щоб деплой робився тільки після схвалення.
Кастомний pipeline для відкату
Приклад пайплайну для відкату
pipelines: custom: rollback: - variables: - name: RELEASE_TAG default: 'v1.0.0' - step: name: Rollback to tag script: - git fetch --tags - git checkout $RELEASE_TAG - npm ci && npm run build - ./deploy.sh production Запуск через UI Bitbucket: Pipeline → Run pipeline → вибрати rollback → вказати тег.
Docker-збірка та PHP
# Docker-збірка image: atlassian/default-image:4 pipelines: branches: main: - step: services: - docker script: - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - docker build -t myrepo/mysite:$BITBUCKET_COMMIT . - docker push myrepo/mysite:$BITBUCKET_COMMIT - docker tag ... && docker push ... # PHP (Laravel/Symfony) image: php:8.3-cli definitions: caches: composer: vendor pipelines: branches: main: - step: caches: - composer script: - apt-get update && apt-get install -y unzip libpq-dev - docker-php-ext-install pdo_pgsql - curl -sS https://getcomposer.org/installer | php - php composer.phar install --no-dev --optimize-autoloader - php artisan config:cache - php artisan migrate --force Сповіщення
- step: script: - npm run build after-script: - | if [ $BITBUCKET_EXIT_CODE -ne 0 ]; then curl -s -X POST $SLACK_WEBHOOK \ -H 'Content-type: application/json' \ -d '{"text":"Build failed: '"'$BITBUCKET_REPO_FULL_NAME'"'"}' fi Типові строки та що входить
| Етап | Тривалість |
|---|---|
| Аудит репозиторію та складання yml | 1–4 години |
| Налаштування змінних та SSH-ключів | 1–2 години |
| Конфігурація тестів та збірки | 2–6 годин |
| Налаштування деплою (staging/production) | 2–4 години |
| Тестування пайплайну | 1–2 години |
| Документація та навчання | 1–2 години |
Разом: від 1 до 3 днів залежно від складності.
Входить: готовий bitbucket-pipelines.yml з коментарями, налаштування змінних оточення (включаючи секретні), інтеграція з Jira (опціонально), інструкція з запуску та відкату, консультація та підтримка протягом тижня після запуску.
Чому автоматизація деплою — стандарт?
Bitbucket Pipelines вбудований в екосистему Atlassian, інтегрується з Jira — коміти та білди видно прямо в задачах. Налаштування простіше, ніж у GitLab CI (не потрібні раннери), а вартість планів починається від $10/міс. Економія на DevOps-інженері — до $500 на місяць.
Готові автоматизувати деплой?
Отримайте консультацію з налаштування CI/CD для вашого проекту. Оцінимо репозиторій, підготуємо pipeline за 1–3 дні. Досвід — 5+ років у налаштуванні CI/CD для десятків сайтів. Гарантуємо стабільну роботу збірки. Замовте автоматизацію деплою вже сьогодні.







