如何获取当前日期时间并将其作为变量传递给某个部署任务?
答案 0 :(得分:26)
您可以使用任何值定义变量,然后将变量修改为当前日期。详细步骤如下:
假设变量名称为time
,我们将值设置为none
。如果需要将变量用于环境,可以在环境变量中定义它。否则,您应该在变量选项卡中定义它。
类型:内联脚本。
内联脚本:
$date=$(Get-Date -Format g);
Write-Host "##vso[task.setvariable variable=time]$date"
MM/DD/YYYY HH:MM AM/PM
。您可以使用其他date formats。$(time)
。答案 1 :(得分:3)
现在有一个特定于发布阶段的变量,名为“ Release.Deployment.StartTime”,或者,如果您在Powershell中使用它,则环境变量为“ Release_Deployment_StartTime”。
采用UTC,格式为“ yyyy-MM-dd HH:mm:ssZ”
例如:“ 2018-11-09 21:23:27Z”
注意:此变量在开始部署阶段 时设置,因此,如果您有部署前的批准,则将在完成所有批准之前设置时间。根据我的测试,如果您有多个同时执行的阶段,即使由于代理的可用性有限,即使一个阶段等待另一阶段,它们之间也是一样的。
我正在在线使用Azure DevOps,不确定本地TFS安装是否具有此功能。
答案 2 :(得分:2)
更简单的方法是
$(Date:MMddyy)
某些选项仅在“构建定义”选项部分中可用。日期格式是其中之一。但是,如果您要进入选项部分,将内部版本号格式设置为$(Date:yyyyMMdd-HHmmss),则可以在任务中使用$(Build.BuildNumber)变量。
此处有更多信息 - https://docs.microsoft.com/en-us/vsts/build-release/concepts/definitions/build/variables?tabs=batch
答案 3 :(得分:2)
对于那些在tfs上使用Linux的人:
set-build.date.sh:
#!/usr/bin/env bash
DATE=$(date '+%d/%m/%Y %H:%M:%S')
echo "##vso[task.setvariable variable=BUILD_DATE;]$DATE"
列出了其他选项here。
键入bash以查找此任务。
完成,您可以在以后的任务中使用BUILD_DATE
变量:)
答案 4 :(得分:1)
基于 Marina Liu (here) 的快速复制和粘贴回答。
在顶部定义变量:
variables:
buildTimeStamp: # will be set by script
# ...
将此添加为第一个任务(并根据需要更改格式):
- 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"
现在您可以在下面的代码中使用变量 $(buildTimeStamp)
。