Настройка CI/CD для Bitbacket — подробно с картинками
CI/CD — позволяет вам автоматизировать процесс заливки вашего приложения на сервер, т.е. вы локально сделали изменения, с пушили ваши изменения в Bitbacket, сделали апрув вашего pulrequest и изменения автоматическими залились на боевой сервер.
Подготовка
И так поехали, что понадобится:
- Аккаунт на https://bitbucket.org/
- Сервер куда будет происходит автоматический pull (pipelines)
Если у вас нет сервера и вы не знаете как его настроить, то у меня есть подробные инструкции по настройки web сервера на базе ubunty и centos.
Настройка SSH ключей
Запускаем cmd под виндой и вводим команду:
ssh-keygen
Первым делом вас спросить про имя файла, оставляем как есть. Если у вас много проектов на разны git системах, то есть инструкция как можно создать несколько shh ключей разных репозиториев.
Затем пароль и еще раз пароль — лучше не устанавливать дабы не вводить его каждый раз.
Ключи у вас должны появится в папке %userprofile%\.ssh
Настройка Bitbacket
Первым делом создаем проект. Затем жмем на ваш аватар, personal setings и выбираем SSH-ключи.
Добавляем публичный ключ, если вы не меняли название, то он лежит в этом файле %userprofile%\.ssh\id_rsa.pub.
Это нужно, чтобы локально можно было сливать заливать изменения в Bitbacket без вода пароля.
Настойка сервера
Копируем этот же публичный ключ в файл на сервере ~/.ssh/authorized_keys
Затем в эту папку ~/.ssh/ закидываем ваш публичный и приватный ключ.
Это действие также позволит вам подключаться на ваш сервер по ssh без вода пароля. Подключится можно введя такую команду в cmd:
ssh root@111.111.111.111
Cоздадим bash файл со скриптом в корне вашего проекта на сервере. И назовем его cicd.sh.
#!/bin/bash cd /var/test.ru git pull
Этот файл будет запускаться Pipelines.
Настройка Pipelines
Уже у вас есть проект, заходим в него и жмем с боку слева внизу Repository setings, setings
Включаем Enable Pipelines. Жмем View bitbucket-pipelines.yml и выбираем вариант по умолчанию, рекомендованный.
Сам файл у меня такой:
# This is an example Starter pipeline configuration # Use a skeleton to build, test and deploy using manual and parallel steps # ----- # You can specify a custom docker image from Docker Hub as your build environment. image: atlassian/default-image:3 pipelines: default: - parallel: - step: name: 'Build and Test' script: - echo "Your build and test goes here..." - step: name: 'Lint' script: - echo "Your linting goes here..." - step: name: 'Security scan' script: - echo "Your security scan goes here..." # The following deployment steps will be executed for each pipeline run. To configure your steps and conditionally deploy see https://support.atlassian.com/bitbucket-cloud/docs/configure-bitbucket-pipelinesyml/ - step: name: 'Deployment to Staging' deployment: staging script: - ssh root@111.111.111.111 /var/test.ru/cicd.sh - echo "Your deployment to staging script goes here..." - step: name: 'Deployment to Production' deployment: production trigger: 'manual' script: - echo "Your deployment to production script goes here..."
Обратите внимание на строчку – ssh root@111.111.111.111 /var/test.ru/cicd.sh
Дальше заходим опять же в настройки репозитория и выбираем SSK key. Жмем сгенерировать ключ и вставляем его на сервере в ~/.ssh/authorized_keys
Дальше указываем ваш ip сервера и жмем fetch, добавляем то что сгененировалось.
Все создавайте локально изменения и делайте PR, после одобрения, изменения автоматически задеплоятся на ваш сервер.
ПредыдущаяЕсли есть вопросы то пишите в комментах.