Как запустить сборку TeamCity из командной строки, используя REST API? - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь запустить сборку TeamCity из командной строки.Во-первых, я попытался:

curl http://<user name>:<user password>@<server address>/httpAuth/action.html?add2Queue=<build configuration Id>

Но в последних версиях TeamCity этот подход удален, и ответ следующий:

405 Для этого запроса разрешен только метод POST.

Итак, основываясь на информации из https://www.jetbrains.com/help/teamcity/rest-api.html#RESTAPI-BuildRequests, он должен работать через REST API следующим образом:

url -v -u user:password http://teamcity.server.url:8111/app/rest/buildQueue --request POST --header "Content-Type:application/xml" --data-binary @build.xml

Пример build.xml:

build.xml
<build>
    <buildType id="buildConfID"/>
</build>

Для меня это не такясно, где я должен разместить свой сконфигурированный build.xml?

1 Ответ

0 голосов
/ 01 июля 2019
curl -u user:password  -X POST \
  https://teamcity.host.io/app/rest/buildQueue \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/xml' \
  -H 'Host: teamcity.host.io' \
  -d '<build branchName="refs/heads/master">
  <triggeringOptions cleanSources="true" rebuildAllDependencies="false" queueAtTop="false"/>
  <buildType id="Test_Configuration_ID_for_trigger"/>
   <lastChanges>
    <change locator="version:e2418b4d7ae55ac4610dbff51bffe60d1f32e019"/>
  </lastChanges>
   <properties>
        <property name="env.startedBy" value="build was triggering from %teamcity.serverUrl%/viewLog.html?buildId=%teamcity.build.id%"/>
    </properties>

</build>'

вы можете пропустить lastChanges для запуска сборки на Последние изменения

...