#teamcity #jira
#teamcity #jira
Вопрос:
Как предотвратить запуск ветки кода сборки, если сборка кода из ветки уже выполняется?
Сборка выполняется через 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. crowdfunder.co.uk/uploads/projects/261847.jpg
2. попробуйте использовать зависимость от моментального снимка. Я думаю, это поможет вам
3. помогло ли это вам? есть новости?
4. мы не пробовали, как мы попробуем ваше решение — я дам вам знать
Ответ №1:
TL; DR
Я проверил, и это работает
Просто создайте базовую конфигурацию, которую вы хотите запустить. Допустим,
Создайте конфигурацию B, которая зависит от A как Slapshot dependency с параметрами
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
— оба
Как это работает? Вы запустите конфигурацию B. B зависит от A. B проверил, что у A уже есть сборка с некоторой веткой и фиксацией, поэтому нет необходимости запускать еще одну, так что давайте закончим.
если у A есть новый коммит, то B видит, что у A есть изменения, поэтому давайте начнем новую сборку A, дождемся завершения.
Если A потерпел неудачу, то B также потерпит неудачу.
p.s. теперь вы должны вызвать B вместо A.