有没有一种方法可以在Azure DevOps CI / CD构建管道中设置日期和时间(时区)

时间:2019-07-05 11:12:54

标签: azure-devops continuous-integration

我在CI / CD构建管道中运行了自动化测试,但是DevOps中的时间是UTC,而我的断言测试则检查本地时间。 有没有办法在我的构建管道中设置时区?

3 个答案:

答案 0 :(得分:0)

是的。例如,以下简单的BASH脚本使用Microsoft Hosted Agent运行:

echo "checking date"
date
echo "setting date to Asia/Kolkata"
sudo timedatectl set-timezone "Asia/Kolkata"
date

结果显示在日志中:

2019-07-05T20:26:48.5992486Z checking date
2019-07-05T20:26:48.5992954Z Fri Jul  5 20:26:48 UTC 2019
2019-07-05T20:26:48.5993264Z setting date to Asia/Kolkata
2019-07-05T20:26:48.9107025Z Sat Jul  6 01:56:48 IST 2019

如您所见,您可以在代理上操纵本地时间。我不同意其他张贴者的观点,即在运行测试的情况下这样做肯定是一件坏事。

您在测试中添加了一些额外的代码来说明本地时间/目标时间,或者可以在构建代理中添加1行以实现相同的目的。

这取决于细节,细节决定成败。小心处理时间。

答案 1 :(得分:0)

使用Powershell,您可以执行以下操作:

Get-TimeZone
Set-TimeZone "India Standard Time"
Get-TimeZone

答案 2 :(得分:0)

对于 Windows Powershell 和 Linux Bash 的其他回复, Mac OSX 代理(例如 xcode 或 Xamarin.iOS 应使用以下脚本设置时区:

- task: Bash@3
    displayName: Set Mac OS X Timezone
    inputs:
        targetType: 'inline'
        script: sudo systemsetup -settimezone Asia/Shanghai