【问题标题】:Is it possible to get a release pipeline creation date on Azure Devops/TFS?是否可以在 Azure Devops/TFS 上获得发布管道创建日期?
【发布时间】:2020-02-21 13:39:09
【问题描述】:

我想知道是否可以找到确切的创建日期作为 Azure Devops 中发布的预定义变量。在发布管道中,它可以被视为标记为“已创建”的实际列(以及“已创建”左侧和右侧的“发布”和“阶段”) - 所以我知道数据存储在某个地方。

我能找到的唯一变量是 Release.Deployment.StartTime - 这是发布部署开始的时间,可能是发布创建后数小时甚至数天,所以不是我想要的。

有没有办法做到这一点?我附上了一个截图来显示我想要得到的东西。

【问题讨论】:

  • 无法获取您的最新信息,该解决方法对您有帮助吗?或者,如果您有任何疑问,请随时在此处分享。

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


【解决方案1】:

$(SYSTEM_PIPELINESTARTTIME) 呢?

我喜欢这个为你转储所有变量的任务。我在所有开发管道的开头都有它:https://marketplace.visualstudio.com/items?itemName=dutchworkz.DisplayAllVariables

如果您无权安装扩展,也可以使用 powershell 来完成:

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

如果所有变量都不起作用,您还可以使用 Powershell 任务发布您自己的变量。它会比实际阶段执行时间晚大约 5-10 秒:

$DateTime = (Get-Date).ToString("yyyyMMdd_HHmm")
Write-Host "##vso[task.setvariable variable=DateTime;]$DateTime"

【讨论】:

    【解决方案2】:

    您始终可以运行 rest 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
    

    此外,您必须启用对令牌的访问权限:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 2021-01-17
      • 1970-01-01
      • 2019-10-31
      • 2021-01-23
      • 2020-11-27
      • 2020-05-31
      相关资源
      最近更新 更多