Запускаем билд с параметром в TeamCity используя API

В данной заметке приведу пример powershell скрипта, которым меняю настройки проекта используя API Teamcity. К сожалению у TeamCity нет нативного “интерфейса” через который это можно было было сделать. Простой пример. Предположим, у вас 2 TeamCity. Скажем, на первый это основной сервер. А на втором вы собираете всякие демо стенды. Также вы хотите что бы количество FXCOP warnings было не ниже чем на основном. Для этого последним шагом можно добавить скрипт, который дернет API и передаст нужное значение. Ниже пример на powershell, который передаст FXCOP warnings на другой сервер:

param(
    [string]$TeamcityUsername = "teamcity_api",
    [string]$TeamcityPassword = "teamcity_pass",
    [string]$TeamcityBuildID = "build_project_id",
    [string]$TeamcityBaseUrl = "https://buildserver",
    [string]$FxcopWarnings = "92"
)
function getAuthHeader($user, $pass) {
    $pair = "$($user):$($pass)"
    $bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
    $base64 = [System.Convert]::ToBase64String($bytes)
    $basicAuthValue = "Basic $base64"
    return $basicAuthValue
}

[xml]$response = Invoke-WebRequest -UseBasicParsing -Method PUT -Uri $($TeamcityBaseUrl + "/app/rest/buildTypes/id:${TeamcityBuildID}/parameters/env.fxcop.warnings") -Body $("<property name='env.fxcop.warnings' value='$FxcopWarnings'/>") -Headers @{ Authorization = $(getAuthHeader $teamcityUsername $teamcityPassword) } -ContentType "application/xml"

 

Рекомендуем почитать
Screen resolution in selenium tests in teamcity

Many developers and testers try to change screen resolution in teamcity service. Default screen resolution is 800x600, but its so small. Читать дальше...

TeamCity и MSSQL DB Project без установки Visual Studio

Возникла необходимость на build сервере с Teamcity собирать DBProject. Если у вас нет желания устанавливать Visual Studio и SSDT Tools Читать дальше...

Установка второго агента TeamCity на сервер

Иногда более продуктивно установить на один сервер несколько агентов TC. Для этого: Качаем инсталлятор и запускаем установку. В процессе устновки Читать дальше...

Поделиться