[英]Is there a way to set a date and time (timezone) in Azure DevOps CI/CD build pipeline
我在我的 CI/CD 構建管道中運行了自動化測試,但 DevOps 中的時間是 UTC,我的斷言測試檢查本地時間。 有沒有辦法在我的構建管道中設置時區?
是的。 例如,這個簡單的 BASH 腳本使用 Microsoft 托管代理運行:
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 行並實現相同的目的。
這只是取決於,魔鬼在細節中。 小心處理時間。
使用 Powershell,您可以執行以下操作:
Get-TimeZone
Set-TimeZone "India Standard Time"
Get-TimeZone
除了 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
Asia/Kolkata 和“sudo timedatectl set-timezone”在 mac OS vmimage 上不起作用。 為 mac 使用以下任務。
- task: CmdLine@2
displayName: Set system Timezone to IST
inputs:
script: |
sudo systemsetup -gettimezone
sudo systemsetup -settimezone Asia/Calcutta
sudo systemsetup -gettimezone
您也可以使用此命令獲取所有有效時區的列表
sudo systemsetup -listtimezones
如果使用ubuntu代理,可以使用如下命令。
timedatectl list-timezones
sudo timedatectl set-timezone '<your timezone>'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.