В журналах конвейеров выпуска Azure в выходных данных журнала задач создается одна ссылка, которую я хочу использовать в качестве переменной в следующих задачах. Я думал проанализировать его из журналов, но не смог найти журналы в агенте.
Как я могу решить эту проблему. Где в каком каталоге агента хранятся журналы? я проверил $(System.DefaultWorkingDirectory), но не смог найти журналы.
Спасибо @RuiJarimba за быстрый ответ, я использую задачу ACCELQ Azure CI Connect. Ссылка на отчет о тестировании создается в журналах задач. Я хочу использовать эту ссылку в качестве переменной.
Боюсь, я не смогу вам с этим помочь, поскольку это индивидуальная задача. Я бы попытался как-нибудь связаться с ACEQL и посмотреть, есть ли простой способ получить ссылку на результаты - возможно, она установлена как выходная переменная.
Вы можете использовать REST API Временная шкала — получите в конвейере, чтобы получить подробную информацию о конвейере. В ответе Timeline-Get мы можем найти URL-адрес журнала задач. Затем мы сможем получить журнал выполнения задачи, чтобы найти нужную ссылку на результат.
Вот мой тестовый образец yaml:
trigger:
- none
pool:
vmImage: ubuntu-latest
steps:
- script: |
echo "Testing"
echo "Results link: https://dev.azure.com/"
echo "Need to abort? ..."
displayName: "Runtests"
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$orgname = "your org name"
$projectname = "your project name"
$url = "https://dev.azure.com/$orgname/$projectname/_apis/build/builds/$(Build.BuildId)/timeline?api-version=7.1"
$TimelineResponse = Invoke-RestMethod -Uri $url -Headers @{"Authorization" = "Bearer $(System.AccessToken)"}
$loglink = $TimelineResponse.records | Where-Object { $_.name -eq "Runtests" } | Select-Object -ExpandProperty log | Select-Object -ExpandProperty url
Write-Output "The log link of task Run tests is $loglink"
$log = Invoke-RestMethod -Uri $loglink -Headers @{"Authorization" = "Bearer $(System.AccessToken)"}
$Resultslink = ($log | Select-String -Pattern "Results link: (.*)").Matches.Groups[1].Value
Write-Output "Results link is $Resultslink"
Результат испытаний:
большое спасибо @Miao Tian-MSFT, все отлично работает. Это решило мою проблему.
Какие задачи вы используете? Должен быть более простой способ сделать то, что вы хотите, без необходимости анализа журналов. Пожалуйста, отредактируйте свое сообщение, объяснив, что именно вы пытаетесь сделать.