VSO(TFS) - 将当前日期时间作为变量

Sko*_*šek 20 deployment azure-devops

如何获取当前日期时间并将其作为变量传递给某些部署任务?

Mar*_*Liu 32

您可以使用任何值定义变量,然后将变量修改为当前日期.详细步骤如下:

在发布中定义变量

假设变量名是time,我们将值设置为none.如果需要将变量用于环境,可以在环境变量中定义它.否则,您应该在变量选项卡中定义它. 在此输入图像描述

在部署任务开始时添加power shell任务:

类型:内联脚本.

内联脚本:

$date=$(Get-Date -Format g);
Write-Host "##vso[task.setvariable variable=time]$date"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

注意:

  • 我在MM/DD/YYYY HH:MM AM/PM这里使用日期格式.您可以使用其他日期格式.
  • 对于后续部署任务,如果要使用当前日期时间,可以直接使用$(time).


Jef*_*ffR 7

现在有一个特定于发布阶段的变量,名为“ Release.Deployment.StartTime”,或者,如果您在Powershell中使用它,则环境变量为“ Release_Deployment_StartTime”。

以UTC格式,格式为“ yyyy-MM-dd HH:mm:ssZ”,
例如:“ 2018-11-09 21:23:27Z”

注意:此变量是在部署阶段开始时设置的,因此,如果您有部署前的批准,则将在完成任何批准之前设置时间。根据我的测试,即使您有多个同时执行的阶段,即使由于代理程序的可用性有限,一个阶段会等待另一个阶段,它们之间也是相同的。

我正在在线使用Azure DevOps,不确定本地TFS安装是否具有此功能。

  • 顺便提一下,它在构建时不起作用,仅在发布时起作用。 (3认同)
  • 谢谢,$(Release.Deployment.StartTime) 在管道变量中发挥了巨大作用! (2认同)

小智 6

对于那些在 tfs 上使用 Linux 的人:

定义变量

确保它具有“可在排队时间设置” 在此处输入图片说明

在存储库的根目录中创建脚本

设置-build.date.sh:

#!/usr/bin/env bash
DATE=$(date '+%d/%m/%Y %H:%M:%S') 
echo "##vso[task.setvariable variable=BUILD_DATE;]$DATE"
Run Code Online (Sandbox Code Playgroud)

此处列出其他选项。

获取源代码后立即添加 shell 脚本

键入 bash 以查找此任务。

在此处输入图片说明

完成,您可以BUILD_DATE在以后的任务中使用变量:)


MrB*_*nzy 5

更简单的方法是

$(Date:MMddyy)

某些选项仅在“构建定义”选项部分中可用。日期格式就是其中之一。但是,如果您要进入选项部分,将内部版本号格式设置为 $(Date:yyyyMMdd-HHmmss),则可以在任务中使用 $(Build.BuildNumber) 变量。

更多信息在这里 - https://learn.microsoft.com/en-us/vsts/build-release/concepts/definitions/build/variables?tabs=batch

  • 那是行不通的。我必须添加此格式说明符才能获取日期(或者更确切地说“时间”)为 DD/MM/YY $date=$(Get-Date -UFormat %D); (2认同)

Bea*_*uty 5

根据 Marina Liu(此处)的回答进行快速复制和粘贴。

在顶部定义变量:

variables:
  buildTimeStamp: # will be set by script
  # ...
Run Code Online (Sandbox Code Playgroud)

将其添加为第一个任务(并根据需要更改格式):

- task: PowerShell@2
  displayName: set variable buildTimeStamp
  inputs:
    targetType: 'inline'
    script: |
      $date=$(Get-Date -Format yyyy-MM-dd_HH.mm);
      Write-Host "##vso[task.setvariable variable=buildTimeStamp]$date"
Run Code Online (Sandbox Code Playgroud)

$(buildTimeStamp)现在您可以在下面的代码中使用变量。