web-dev-qa-db-ja.com

VSO(TFS)-現在の日時を変数として取得

現在の日時を取得して、それを変数としていくつかの展開タスクに渡すにはどうすればよいですか?

18

任意の値で変数を定義し、変数を現在の日付として変更できます。以下の詳細手順:

リリースで変数を定義する

変数名がtimeであると仮定し、値をnoneとして設定します。環境に変数を使用する必要がある場合は、環境変数で定義できます。それ以外の場合は、変数タブで定義する必要があります。 enter image description here

展開タスクの開始時にPower Shellタスクを追加します。

タイプ:インラインスクリプト。

インラインスクリプト:

_$date=$(Get-Date -Format g);
Write-Host "##vso[task.setvariable variable=time]$date"
_

enter image description here

注意:

  • ここでは、日付形式を_MM/DD/YYYY HH:MM AM/PM_として使用します。他の 日付形式 を使用できます。
  • 後続のデプロイタスクで、現在の日時を使用する場合は、$(time)を直接使用できます。
29
Marina Liu

現在、「Release.Deployment.StartTime」というリリースステージに固有の変数があります。Powershellで使用する場合、環境変数は「Release_Deployment_StartTime」です。

UTCで、形式は「yyyy-MM-dd HH:mm:ssZ」です
ex: "2018-11-09 21:23:27Z"

注:この変数は、展開ステージがstartedのときに設定されるため、展開前の承認がある場合は、承認が完了する前に時間が設定されます。私のテストでは、エージェントの可用性が限られているために1つのステージが他のステージを待機している場合でも、同時に実行される複数のステージがある場合は同じになります。

Azure DevOpsをオンラインで使用していますが、ローカルTFSインストールにこれが含まれるかどうかはわかりません。

5
JeffR

より簡単な方法は

$(Date:MMddyy)

一部のオプションは、ビルド定義オプションセクションでのみ使用できます。日付のフォーマットはそれらの1つです。ただし、オプションセクションに移動する場合、ビルド番号の形式を$(Date:yyyyMMdd-HHmmss)に設定すると、タスクで$(Build.BuildNumber)変数を使用できます。

詳細はこちら- https://docs.Microsoft.com/en-us/vsts/build-release/concepts/definitions/build/variables?tabs=batch

2
MrBeanzy

TfsでLinuxを使用する場合:

変数を定義する

「キュー時間で設定可能」が設定されていることを確認してください enter image description here

リポジトリのルートにスクリプトを作成します

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と入力して、このタスクを見つけます。

enter image description here

完了、後のタスクでBUILD_DATE変数を使用できます:)

2
Kuba Ptak