やる気駆動型エンジニアの備忘録

WPF(XAML+C#)の話題を中心に.NET/Android/CI やたまに趣味に関するブログです

(Azure Pipelines)Git Tag の情報を変数に保存・参照する

Git で Tag を使う場合、タグにはバージョン番号を付けて管理することが多いのですが、そのバージョン番号を Azure Pipelines で使いたいケースが稀にあります。 今回は Git で Tag うちされた情報を取得して Azure Pipelines の変数として保存・参照する方法を残します。

手順

  1. PowerShell タスクから Git コマンドで Tag を取得する
  2. Tag を変数に保存する
  3. 保存した変数を参照する

最後は PowerShell を使って変数を参照していますが、Azure Pipelines のタスクから変数を参照することができます。 少し調べると YAML ファイルから変数を設定する方法はすぐ出てくるのですが Classic を利用しているブログなどは、実はあまりありません。 折角なので Classic を使用してみようと思います。

なお、今回は2.1.0.0のような形式で保存しているものとします。

Git コマンドで Tag を取得する

$TagVersion = & git describe --tags --abbrev=0

Git コマンドの詳細については以下を参照してください。

git-scm.com

ただ、このままだとタグを取っているだけなので整形します。 今回のバージョン番号形式では、以下のようなスクリプトで取得することができます。

$TagVersion = & git describe --tags --abbrev=0
$Version = $TagVersion.Substring(4, $TagVersion.Length - 4)

Tag を変数に保存する

Tag を取得できたと言っても PowerShell の変数に保存しただけです。 これを他の Azure Pipelines タスクで使用するにはVariablesに保存する必要があります。

Write-Host "##vso[task.setvariable variable=TagVersion;]$Version"

docs.microsoft.com

なお、YAML を使う場合は以下のようにします。

docs.microsoft.com

保存した変数を参照する

Azure Pipelines を使っている方にはもはや書くまでもないですね。

$(TagVersion)

これでバージョン番号を取得することができます。

さいごに

タグを使う目的はプロダクトごとに異なると思います。 必要に応じて PowerShell でタグ文字列を整形していい感じに利用してください。