0

Я пытаюсь настроить CircleCI для моего проекта AngularJS. Я думаю, что я сделал все правильно, но есть некоторые проблемы.Только тест/сбор фиксируется в ветке разработки - CircleCI

  1. Когда коммит нажимается на ветвь функции (ничего, кроме разработки или мастера), я не хочу запускать тест и определенно не создавать сборку.
  2. Когда PR создается для ветви разработки, я хочу, чтобы этот PR был протестирован.
  3. Когда этот PR объединен или если другие прямые коммиты сделаны в ветке разработки, я хочу, чтобы была создана новая сборка &.

Проблема в том, что первая точка, в этот момент каждая фиксация на любой ветке вызовет тест, который просто не нужен вообще.

Я попытался это в circle.yml, но это также останавливает PR, чтобы в разработке отделения от тестирования, кажется:

general: 
    branches: 
    only: 
     - develop 

Так как я могу получить круг вести себя так, что я хочу? Или я должен удалить эту конфигурацию выше и позволить ей проверять каждую фиксацию на каждой ветке?

ответ

1

Когда PR-код сделан в github, коммиты, которые формируют запрос на извлечение, все еще являются частью их исходных ветвей, а не новой ветвью, что означает, что любые тесты, которые будет выполнять Circle, будут выполняться как часть исходной ветви, неявно черный список. PR, которые объединены, должны определенно запускать новые сборки, поскольку объединенные PR-результаты в новой команде SHA и запускают CircleCI. Если вы хотите, чтобы тесты запускались при создании PR, вам нужно будет изменить файл circle.yml, чтобы разрешить ветку, из которой вы делаете PR.

Альтернативный способ получить это поведение будет заключаться в использовании сопоставления регулярных выражений в белом списке ветвей, так что любое название ветки, начинающееся с чего-то вроде pr-, будет построено нормально, а затем сделает все ваши запросы на получение от pr- ветвей. Вам просто нужно будет добавить:

general: 
    branches: 
    only: 
     - /pr-*/ 
Смежные вопросы