Можно ли получить дату создания конвейера выпуска на Azure Devops / TFS? - PullRequest
0 голосов
/ 21 февраля 2020

Мне было интересно, можно ли найти точную дату создания в качестве предопределенной переменной для выпуска в Azure Devops. В конвейерах выпуска это можно увидеть как фактический столбец с меткой «Создано» (вместе с «Выпусками» и «Этапы» слева и справа от «Создано» соответственно) - так что я знаю, что данные где-то хранятся.

Единственная переменная, которую мне удалось найти, это Release.Deployment.StartTime - время начала развертывания релиза, которое может быть через несколько часов или даже дней после создания релиза, поэтому не совсем то, что я хочу.

Есть ли способ сделать это? Я приложил скриншот, чтобы показать, что я пытаюсь получить.

enter image description here

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Вы всегда можете запустить вызов API api, чтобы увидеть детали релиза. Вот пример шага этапа с powershell:

$user = ""
$token = "$(System.AccessToken)"
$teamProject = "$(System.TeamProject)"
$releaseId = "$(Release.ReleaseId)"
$orgUrl = "$(System.CollectionUri)"
$orgUrlrel = $orgUrl -replace "dev", "vsrm.dev" 

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

$uriGetRelease = "$orgUrlrel/$teamProject/_apis/release/releases/$releaseId"+"?api-version=5.1"

$resultStatus = Invoke-RestMethod -Uri $uriGetRelease -Method Get -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

Write-Host "Created date:" $resultStatus.createdOn

Дополнительно необходимо включить доступ к токену:

enter image description here

0 голосов
/ 21 февраля 2020

Как насчет $(SYSTEM_PIPELINESTARTTIME)?

Мне нравится эта задача, которая выводит все переменные за вас. У меня это есть в начале всех моих конвейеров разработки: https://marketplace.visualstudio.com/items?itemName=dutchworkz.DisplayAllVariables

Вы также можете сделать это с powershell, если у вас нет доступа для установки расширений:

Get-ChildItem Env: | Format-Table -Wrap -AutoSize

Если ни одна из переменных не работает, вы также можете опубликовать sh свою собственную переменную с помощью задачи Powershell. Это будет примерно на 5-10 секунд позже реального времени выполнения этапа:

$DateTime = (Get-Date).ToString("yyyyMMdd_HHmm")
Write-Host "##vso[task.setvariable variable=DateTime;]$DateTime"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...