创建发布时如何获取发布日期变量或构建日期变量

时间:2020-03-16 08:47:56

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline

我想获取发布开始日期或构建日期,并在我的部署应用程序中使用此日期字符串,但是我没有在预定义变量Wiki https://docs.microsoft.com/en-us/azure/devops/pipelines/release/variables?view=azure-devops&tabs=batch

中找到它

有人知道如何获得它吗?还是不存在日期的预定义变量?

2 个答案:

答案 0 :(得分:2)

您始终可以使用rest api获得完整的信息:Get Release

获取创建日期和时间的小示例:

  1. 在发布定义中添加新变量(Release variables and debugging)。以rl.CreatedDateTime为例
  2. 在工作级别上设置对令牌的访问权限

enter image description here

  1. 添加以下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)}
    
    [datetime]$releaseDate = $resultStatus.createdOn
    
    $setDateTimeVar = "##vso[task.setvariable variable=rl.CreatedDateTime]" + $releaseDate
    
    Write-Host $setDateTimeVar
    

答案 1 :(得分:0)

只是找到了怎么做!任何更好的方式都欢迎!

  1. 将发布名称格式设置为$(Date:yyyyMMdd) enter image description here

  2. 在管道的部署任务中使用$(Release.ReleaseName)