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