Bitrise запускает рабочий процесс развертывания при нажатии на код (когда это не должно) - PullRequest
0 голосов
/ 24 октября 2019

Я смущен, почему происходят следующие 2 вещи:

  1. Когда я помещаю некоторые коммиты в мою ветку feature_foo, запускаются 2 рабочих процесса (сборки): основной рабочий процесс по отношению к последней фиксации,и развернуть рабочий процесс против моего последнего PR , оба на feature_foo. Я ожидал, что будет запущен только основной рабочий процесс, поскольку я еще не выпустил PR.
  2. 2 одинаковых уведомления по электронной почте отправляются мне с artifacts+\<my-bitrise-project-id\>@bitrise.io в течение той же минуты. Я понимаю, что PR может привести к двум сборкам (поскольку PR технически является толчком), но сомневаюсь, что проблема здесь, поскольку я еще не создал PR.

Вот моя текущая карта триггеров bitrise.yml:

trigger_map:
- push_branch: "*"
  workflow: primary
- pull_request_source_branch: "*"
  pull_request_target_branch: feature
  workflow: deployment-staging
- tag: "v*.*.*"
  workflow: deployment-production

Кстати, это моя желаемая установка с 3 рабочими процессами:

  1. Выполнить интеграционные тесты (основной рабочий процесс) в 2 случаях:
    1. Нажатие кода на * (любую ветвь)
    2. Запрос на ветку feature (когда создается PR, т. Е. Предварительно объединенное состояние, такучастники могут предварительно просмотреть потенциальное влияние предложенных изменений)
  2. Запустить развертывание (развернуть рабочий процесс) до постановка , когда PR из * в feature ветвиобъединено
  3. Запустить развертывание (развернуть рабочий процесс) до производство , когда теги v*.*.* нажаты

Что является правильнымКонфигурация bitrise.yml для достижения этой цели? В документах не указано, как мы можем дифференцировать PR по штатам (выпущенные и объединенные). Я хочу развернуть только после проверки кода .

Спасибо

1 Ответ

0 голосов
/ 03 ноября 2019

Если вы откроете пиар, это вызовет другую сборку? Вы уверены, что PR еще не открыт?

Чтобы ответить

Я хочу развернуть его только после проверки кода.

Iдумаю, вы имеете в виду, когда PR просматривается и объединяется в целевую ветку, например, в master.

. Для этого вы можете использовать конфигурацию, подобную этой: https://devcenter.bitrise.io/builds/triggering-builds/trigger-map/#dont-start-two-builds-for-pull-requests-from-the-same-repository

trigger_map:
- push_branch: master
  workflow: deploy
- pull_request_target_branch: "*"
  workflow: primary

Это будет запускать сборку с использованием рабочего процесса, называемого primary, когда вы открываете PR и каждый раз, когда обновляете PR. Как правило, в этом случае вы хотите запустить несколько автоматических тестов в рабочем процессе primary (юнит-тесты, пользовательский интерфейс, линтеры и / или выполнение, возможно, тестовой сборки).

Затем при объединении PR (в этомв ветке master) она будет запускать сборку с использованием рабочего процесса deploy (поскольку технически слияние генерирует событие commit / push).

Надеюсь, это поможет, дайте мне знать, если у вас естьлюбые вопросы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...