Запуск сборки

Answered

Коллеги, подскажите как сделать

Есть две сборки

1. собирает базовый образ docker

2. для каждой ветки из гита (следит за ветками) делает образ на основе п.1

 

Проблема.

При пересборке п.1 нужно запустить запуск п.2 по всем веткам которые попадают в группу Active с проверкой на наличие этой ветки в гите.

 

Сейчас же пересборка запускается только для default ветки

0
2 comments

Добрый день! Данный юз кейс в UI, к сожалению, не покрыт. В качестве воркараунда можно запускать п.2 через скрипт с использованием REST API, вызываемый в последнем шаге п.1. Ниже несколько моментов, которые могут оказаться полезны для написания скрипта.

Получить активные ветки конфигурации можно через HTTP GET запрос типа:
http://{TEAMCITY_SERVER}/app/rest/projects/id:{PROJECT_ID}/branches?locator=buildType:{BUILD_CONFIGURATION_ID},policy:ACTIVE_VCS_BRANCHES

Чтобы TeamCity не показывал недавно закрытые ветки в числе активных, можно выставить конфигурационный параметр teamcity.activeBuildBranch.age.hours со значением 0 (документация по теме). Отображение в TeamCity может отставать от гита на интервал опроса репозитория. Если это критично, то можно попробовать проверять наличие бранча в гите отдельно в скрипте.

Запустить билд в нужной конфигурации и нужном бранче можно с помощью HTTP POST запроса на:
http://{TEAMCITY_SERVER}t/app/rest/buildQueue

Пример:
curl -v -u admin:mypassowrd http://teamcity:8111/app/rest/buildQueue --request POST --header "Content-Type:application/xml" --data '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><build branchName="RIMS-313"><buildType id="My_Build_Configuration_Id"/></build>'

Документация:
https://www.jetbrains.com/help/teamcity/rest/start-and-cancel-builds.html

Надеюсь, что это поможет. Также, в вашем сценарии, возможно, пригодилась бы возможность добавления триггера, который запускает билд, если обновился какой-либо Docker image:
https://youtrack.jetbrains.com/issue/TW-53727
если это так, то можете проголосовать за эту фичу.

-Анатолий

0

Please sign in to leave a comment.