2016-07-18 1 views
0

Я ищу способ установить сохранение неопределенного поля сборки при ее завершении.Как программно установить поле «Удерживать неопределенное» при успешном завершении сборки?

Возможно, используя скрипт PowerShell в качестве шага сборки?

+0

Вы используете Управление выпуском? Кажется, в соответствии с этим сообщением, что он устанавливается автоматически для всех сборников: http://stackoverflow.com/questions/26259004/release-management-sets-builds-to-retain-indefinitely. Существует даже ответ на вопрос о том, как модерировать buildscript для удаления «Сохранять неопределенно». Может быть, вы можете использовать этот мод, чтобы его отменить, чтобы включить его? – Hyperdingo

+0

Добавление тега Vs-Team-Services, поскольку он использует одну и ту же инфраструктуру построения. – jessehouwing

ответ

1

Проверьте "Build Updating Tasks" extension. Он содержит задачу «Сохранение сборки». Он делает именно то, что вам нужно. Вам нужно быть в обновлении 3 TFS, если я не ошибаюсь.

+0

Semi работает, но у меня было 401 несанкционированное исключение, но я прокомментировал это и дал отзыв автора. –

1

Для поиска пользователей, использующих сборки vNext, вы можете использовать сценарий Powershell для этого.

Вам необходимо «Разрешить скриптам получать доступ к токену OAuth» в вариантах buid.

$buildId = $env:BUILD_BUILDID # the currently running build 
"Build ID: $buildId" 

$keepforever = @{ 
    keepforever='true' 
} 

$jsonKeepForever = $keepforever | ConvertTo-Json -Depth 100 

$uriForBuildUpdate = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$($env:SYSTEM_TEAMPROJECTID)/_apis/build/builds/" + $buildID + "?api-version=2.0" 

$result = Invoke-RestMethod -Uri $uriForBuildUpdate -Method Patch -Body $jsonKeepForever -ContentType "application/json" -Headers @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" } 

Write-Verbose "Result: $result" -Verbose 

"********************************" 
"Build set to retain indefinitely" 
"********************************"