2010-08-16 1 views
2

Кто-нибудь знает, как я могу создать или удалить конфигурацию сборки в TeamCity, используя только Powershell? Я пытаюсь автоматизировать весь процесс установки проекта; посмотрели на REST API, но, похоже, в основном доступны только для чтения.Создание конфигурации сборки в TeamCity с использованием Powershell

ответ

0

Вы посмотрели psake? Это инструмент автоматизации сборки, и кто-то интегрировал некоторую поддержку TeamCity (в teamcity.ps1).

+0

Я посмотрел на psake. К сожалению, его интеграция с TeamCity - это только чтение или обновление существующих типов. Я ищу, чтобы создать новый тип сборки (конфигурации) каким-то образом без использования пользовательского интерфейса TeamCity. – Rolstad

2

Нет возможности автоматизировать создание конфигурации сборки. Смотреть/голосовать за соответствующий запрос функции JetBrains tracker: http://youtrack.jetbrains.net/issue/TW-7999.

1

Teamcity 8.x REST предоставляет возможность создания конфигурации сборки. Вы можете использовать что-то вроде ниже для использования в REST API.

function Create-Build{ 
    param 
    (   
     [Parameter(Mandatory=$true)] 
     [string] 
     $buildName, 

     [Parameter(Mandatory=$true)] 
     [string] 
     $parentProjectId 
    ) 

    # Create Teamcity URL 
    $url = "http://teamcity:8111/httpAuth/app/rest/projects/$parentProjectId/buildTypes" 

    $webRequest = [System.Net.WebRequest]::Create($url) 
    $webRequest.ContentType = "text/plain" 
    $PostStr = [System.Text.Encoding]::UTF8.GetBytes($buildName) 
    $webrequest.ContentLength = $PostStr.Length 
    $webRequest.Method = "POST" 
    $webRequest.Accept = "*/*" 
    $webRequest.Credentials = new-object system.net.networkcredential("teamcityuser", "password") 

    $requestStream = $webRequest.GetRequestStream() 
    $requestStream.Write($PostStr, 0,$PostStr.length) 
    $requestStream.Close() 

    [System.Net.WebResponse] $resp = $webRequest.GetResponse(); 
    $rs = $resp.GetResponseStream(); 
    [System.IO.StreamReader] $sr = New-Object System.IO.StreamReader -argumentList $rs; 
    [string] $results = $sr.ReadToEnd(); 

    $results 
} 

# Call ps function to create build configuration 
Create-Build -buildName "CopiedBuild" -parentProjectId "TestProject"