概要
Azure Devops Pipeline YAMLファイルで現在のgitタグの名前を取得するにはどうすればよいですか?
何をしようとしているのですか?
Azure Devopsでビルドパイプラインを設定しています。パイプラインは、新しいgitタグが作成されるとトリガーされます。次に、Dockerイメージを作成し、それらにgitタグの名前を付けたいと思います。
私のYAMLパイプラインは次のようになります。
# Trigger on new tags.
trigger:
tags:
include:
- '*'
stages:
- stage: Build
jobs:
- job: Build
pool:
vmImage: 'ubuntu-latest'
steps:
- script: export VERSION_TAG={{ SOMEHOW GET THE VERSION TAG HERE?? }}
displayName: Set the git tag name as environment variable
- script: docker-compose -f k8s/docker-compose.yml build
displayName: 'Build docker containers'
- script: docker-compose -f k8s/docker-compose.yml Push
displayName: 'Push docker containers'
そして、私がこのようなものを参照しているdocker-composeファイル:
version: '3'
services:
service1:
image: my.privaterepo.example/app/service1:${VERSION_TAG}
build:
[ ... REDACTED ]
service2:
image: my.privaterepo.example/app/service2:${VERSION_TAG}
build:
[ ... REDACTED ]
ご覧のように、docker-composeファイルのタグ名は環境変数VERSION_TAG
から取得されます。 YAMLパイプラインで、現在のGITタグに基づいて環境変数VERSION_TAG
を設定しようとしています。では、タグの名前を取得するにはどうすればよいですか?
Windows VMの場合、次のスクリプトを使用してタグを取得できます。
steps:
- powershell: |
$CI_BUILD_TAG = git describe --tags
Write-Host "##vso[task.setvariable variable=CI_BUILD_TAG]$CI_BUILD_TAG"
displayName: 'Set the tag name as an environment variable'