Azure DevOps |Запустить выпуск из Powershell и передать переменную процесса (устанавливается во время выпуска) - PullRequest
0 голосов
/ 18 октября 2018

Можно ли запустить выпуск из PowerShell (задача PowerShell в конвейере сборки) и передать переменную процесса (устанавливается во время выпуска)?

Цель:

Имеется конвейер сборкииспользуя несколько веток.Я хочу запустить выпуск (который имеет переменные, устанавливаемые во время выпуска) из сборки на основе имени ветви.

Причина использования переменных во время выпуска заключается в том, что его переменная используется для нацеливания на определенные ресурсы в Azure..

1 Ответ

0 голосов
/ 19 октября 2018

Мы можем запустить выпуск из Powershell, вызвав REST API ( Releases - Create ), но не можем передать переменную процесса (устанавливается во время выпуска).

Поскольку мы должны предоставить конкретный artifact version ID (, какой артефакт будет использоваться для запуска выпуска ) в теле запроса.После предоставления artifact version ID переменная больше не нужна.

Вы можете обратиться к сценарию PowerShell ниже, чтобы запустить выпуск:

Param(
   [string]$collectionurl = "https://{account}.vsrm.visualstudio.com",
   [string]$projectName = "GIT",
   [string]$user = "username",
   [string]$token = "password",
   [string]$releasedDefinitionId = "3" 

)

# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

function CreateJsonBody
{
    $value = @"
{
 "definitionId":$releasedDefinitionId,
 "artifacts":[{"alias":"_BitBucketDev",
                "instanceReference":{"id":"454",
                       "name":"454",
                       "definitionId":"58",
                       "sourceBranch":"master",
                    }
                }
            ],

 "isDraft":false,
 "manualEnvironments":[]
"@

 return $value
}

$json = CreateJsonBody

$uri = "$($collectionurl)/$($projectName)/_apis/Release/releases?api-version=4.1-preview.6"
$result = Invoke-RestMethod -Uri $uri -Method Post -Body $json -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

$ReleaseID = $result.id

Write-Host "ReleaseID:" $ReleaseID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...