web-dev-qa-db-ja.com

Azure Devops Pipeline YAMLのGitタグ名

概要

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を設定しようとしています。では、タグの名前を取得するにはどうすればよいですか?

6
MW.

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'
0
SLdragon