簡體   English   中英

有沒有辦法在 Azure DevOps CI/CD 構建管道中設置日期和時間(時區)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM