Мы можем извлечь теги из репо, если Дженкинс еще этого не сделал.
git fetch --tags
Нам нужно найти тег (ы), которые указывают на конкретную фиксацию или HEAD
в нашем случае,К счастью, в git есть удобная команда, которая позволяет нам это делать.
git tag --points-at HEAD
Используя awk
, мы можем превратить это в вывод, который groovy может фальсифицировать.
awk NF
Итак, сначала мы проверим, является ли нажатая ветвь master
if (env.BRANCH_NAME == 'master') {
заблокировать его
lock('publish master') {
выполнить скрипт оболочки git tag и присвоить его TAG
TAG = sh (
returnStdout: true,
script: 'git fetch --tags && git tag --points-at HEAD | awk NF'
).trim()
, если тег существует, сделать что-нибудь!
if (TAG) {
stage('Deploy Prod') {
echo "Deploying to Prod ${TAG}"
}
}
Надеюсь, это ответит на ваш вопрос или, по крайней мере, поможет вам выбрать правильный путь.