Bitbucket CI/CD

Powered by Shower

Bitbucket CI/CD

Доклад Дмитрия Захарова

Bitbucket Icon

GitHub Flow

  1. Create a branch
  2. Add commits
  3. Open a Pull Request
  4. Discuss and review your code
  5. Deploy
  6. Merge

Continuous Integration (CI)

Постоянное слияние кода в рабочую ветку с выполнением авто-тестов и сборок.

Сontinuous Delivery (CD)

Постоянное развертывание нового кода на серверах.

Bitbucket Pipelines

CI/CD сервис интегрированный в Битбакет. Нужно включить, чтобы начать пользоваться.

Repository settings → Pipelines → Settings

bitbucket-pipelines.yml

            pipelines:
              default:
                - step:
                    image: node:12.18.3
                    script:
                      - npm install
                      - npm test
        

Артефакты

Это файлы созданные шагом в пайплайне, которые можно передавать следующим шагам или скачать.

Use artifacts in steps

Branch workflows

Поведение пайплайна можно контролировать в зависимости от ветки.

Pipelines in action

Переменные окружения

Сервис предоставляет переменные окружения, которые могут использоваться в пайплайнах. Так же можно определить свои переменные окружения, в т.ч. и зашифрованные.

Variables in pipelines

Repository settings → Pipelines → Repository variables

SSH keys

Repository settings → Pipelines → SSH Keys

Использование сервисов и баз данных

            pipelines: ...
            definitions:
                services:
                    postgres:
                        image: postgres:12.3
                        variables:
                            POSTGRES_PASSWORD: $PG_PASS
                            POSTGRES_USER: $PG_USER
                            POSTGRES_DB: $PG_DB_NAME
        

Способы доставки кода

Deployments

На проекте несколько сред для развертывания: dev, test, prod.

Repository settings → Pipelines → Deployments

Pipes

Облегчают сложные задачи, делая всю работу "под капотом". Например: подключение по ssh, копирование файлов на сервер по scp, изменение статуса тикета в Jira.

Bitbucket Pipelines Pipes

Бонус

Интеграция Jira и Bitbucket

Связывание коммитов и пул реквестов с тикетми через ссылки.

Repository settings → Workflow → Links

Pull request review

Оповещение о создании или изменениях в пул реквесте.

Repository settings → Pull Requests → Default Reviewers

Вопросы?

Спасибо!