TeamCity API. Не запускать новую сборку, если сборка уже выполняется - PullRequest
0 голосов
/ 19 апреля 2019

Как предотвратить запуск ветви кода сборки, если код сборки из ветви уже выполняется?

Сборка выполняется через API из JIRA Automation (Отправить запрос Webhook) для:http://teamcity.url/app/rest/buildQueue?buildTypeId=<buildTypeId>

Тело запроса:

<build branchName="{{issue.fields.branch}}">
    <buildType id="<buildTypeId>"/>
</build>

Проблема: , поскольку JIRA ничего не знает о том, выполняется сборка или нетв TeamCity JIRA снова начинает сборку, если было выполнено правило

1 Ответ

1 голос
/ 23 апреля 2019

TL; DR

Я проверил и все работает

Просто создайте базовую конфигурацию, которую вы хотите запустить. Допустим, A

Создайте конфигурацию B , которая зависит от A как зависимость Slapshot с параметрами

  • Do not run new build if there is a suitable one - проверено
  • Only use successful builds from suitable ones - проверено
  • Run build on the same agent - не проверено
  • Make build start of faild - оба

enter image description here

Как это работает? Вы активируете конфигурацию B . B зависит от A. B проверил, что A уже имеет сборку с некоторой ветвью и коммитом, поэтому не нужно запускать еще одну, так что давайте закончим.

если у A есть новый коммит, то B увидит, что у A есть изменения, поэтому давайте начнем новую сборку A, дождемся окончания.

Если A потерпел неудачу, то B также потерпит неудачу.

p.s. теперь вы должны активировать B вместо A .

...