#azure #azure-devops
#azure #azure-devops
Вопрос:
При выполнении конвейера выпуска DevOps:
В настоящее время выполняя задачу 2, я хотел бы сослаться на выходные данные задачи 1. (Задача 1 извлекает json из вызова REST api.)
Они оба находятся в одном и том же безагентном задании (оба являются вызовами REST api). по сути, я пытаюсь «связать» их вместе и / или передать выходные данные json из задачи 1 в задачу 2
Я видел документацию по переменным, но я не уверен, смогу ли я установить переменные через выходные данные задачи 1, или даже лучше, если бы было что-то встроенное, например, $ {PreviousStep .Вывод}
Возможно ли это вообще?
Комментарии:
1. какая задача является задачей 1?
2. это задача, которая вызывает REST api
3. Ваши задачи относятся к одному и тому же заданию?
4. Да, они оба находятся в одном и том же безагентном задании (оба являются вызовами REST api). в основном пытается «связать» их вместе и / или передать выходные данные json из задачи 1 в задачу 2
5. Привет @Jbooth, как насчет проблемы? Разрешил ли приведенный ниже ответ ваш вопрос? Если нет, не могли бы вы сообщить мне последнюю информацию об этой проблеме?
Ответ №1:
Мы могли бы создать временный файл в конвейере и сохранить тело ответа в файл, а затем прочитать файл в следующей командной строке.
В моем примере я получаю определение конвейера выпуска в первой задаче power shell и сохраняю выходные данные во временный файл, а затем считываю его в следующей задаче power shell.
Пример определения конвейера
trigger:
- none
pool:
vmImage: 'windows-latest'
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
New-Item $(Build.SourcesDirectory)test1.txt
$outfile = "$(Build.SourcesDirectory)test1.txt"
Write-Host $outfile
$url = "https://vsrm.dev.azure.com/{Org name}/{Project name}/_apis/release/definitions/{Definition ID}?api-version=6.0-preview.4"
Write-Host "URL: $url"
$connectionToken="{PAT}"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
$pipelineInfo = Invoke-RestMethod -Uri $url -Headers @{authorization = "Basic $base64AuthInfo"} -Method Get
$pipelineInfo | Out-File -FilePath $outfile
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$json = Get-Content -Path $(Build.SourcesDirectory)test1.txt
Write-Host $json
Результат: