(Azure Pipelines)Git Tag の情報を変数に保存・参照する
Git で Tag を使う場合、タグにはバージョン番号を付けて管理することが多いのですが、そのバージョン番号を Azure Pipelines で使いたいケースが稀にあります。 今回は Git で Tag うちされた情報を取得して Azure Pipelines の変数として保存・参照する方法を残します。
手順
- PowerShell タスクから Git コマンドで Tag を取得する
- Tag を変数に保存する
- 保存した変数を参照する
最後は PowerShell を使って変数を参照していますが、Azure Pipelines のタスクから変数を参照することができます。 少し調べると YAML ファイルから変数を設定する方法はすぐ出てくるのですが Classic を利用しているブログなどは、実はあまりありません。 折角なので Classic を使用してみようと思います。
なお、今回は2.1.0.0
のような形式で保存しているものとします。
Git コマンドで Tag を取得する
$TagVersion = & git describe --tags --abbrev=0
Git コマンドの詳細については以下を参照してください。
ただ、このままだとタグを取っているだけなので整形します。 今回のバージョン番号形式では、以下のようなスクリプトで取得することができます。
$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"
なお、YAML を使う場合は以下のようにします。
保存した変数を参照する
Azure Pipelines を使っている方にはもはや書くまでもないですね。
$(TagVersion)
これでバージョン番号を取得することができます。
さいごに
タグを使う目的はプロダクトごとに異なると思います。 必要に応じて PowerShell でタグ文字列を整形していい感じに利用してください。