web-dev-qa-db-fra.com

Nom de balise Git dans Azure Devops Pipeline YAML

Résumé

Comment puis-je obtenir le nom de la balise git actuelle dans un fichier YAML Azure Devops Pipeline?

Qu'est-ce que j'essaie de faire?

Je configure un pipeline de génération dans Azure Devops. Le pipeline se déclenche lorsqu'une nouvelle balise git est créée. Je veux ensuite créer des images de docker et les étiqueter avec le nom de la balise git.

Mon pipeline YAML ressemble à ceci:

# 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'

Et le fichier docker-compose auquel je fais référence quelque chose comme ceci:

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 ]

Comme vous pouvez le voir, le nom de la balise dans le fichier docker-compose provient de la variable d'environnement VERSION_TAG. Dans le pipeline YAML, j'essaie de définir la variable d'environnement VERSION_TAG basé sur la balise GIT actuelle. Alors ... comment puis-je obtenir le nom de la balise?

6
MW.

Pour Windows vm, vous pouvez utiliser le script ci-dessous pour obtenir la balise:

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