Не удается получить значение плагина номера версии в jenkins

Я использую декларативный синтаксис конвейера для работы с конвейером в Jenkins для своего проекта. Я хотел использовать

pipeline {
    agent any

    environment {
        VERSION = VersionNumber projectStartDate: '', versionNumberString: '${BUILD_YEAR}.${BUILD_MONTH}.${BUILDS_TODAY}.${BUILD_NUMBER}', versionPrefix: 'v1.', worstResultForIncrement: 'SUCCESS'
    }

    stages {
        stage('Version Update'){
            steps{
                echo '${VERSION}'
                writeFile file: 'version.ini', text: '%VERSION%'
            }
        }
    }
}

Я пробовал $ {VERSION},% VERSION, чтобы напечатать номер версии, но он всегда печатает то, что находится внутри эха, текст внутри шага writeFile. (например,% VERSION%)

Я могу увидеть версию в боковом меню в том формате, который я использовал.

enter image description here

0
0
410
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В Groovy строки, в которых используются одинарные кавычки ', не получают интерполированный. Вместо этого вы должны использовать двойные кавычки и использовать $ перед каждой переменной, которую вы хотите заменить (если вы хотите сохранить $ в строке, вам нужно экранировать ее с помощью \).

Для writeFile это команда конвейера, поэтому она запускается как groovy на мастере jenkins, а не на узле сборки. Вот почему вам нужно относиться к нему как к такому (двойные кавычки и $). трубопровод { агент любой

    environment {
        VERSION = VersionNumber projectStartDate: '', versionNumberString: "${BUILD_YEAR}.${BUILD_MONTH}.${BUILDS_TODAY}.${BUILD_NUMBER}", versionPrefix: 'v1.', worstResultForIncrement: 'SUCCESS'
    }

    stages {
        stage('Version Update') {
            steps {
                echo "${VERSION}"
                writeFile file: 'version.ini', text: "$VERSION"
            }
        }
    }
}

Примечание: я не использую плагин номера версии, поэтому мне не удалось проверить этот точный код.

Другие вопросы по теме