Не получается значение плагина с номером версии в 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 напечатать номер версии, но он всегда печатал то, что внутри echo, текст внутри шага writeFile. (например,%VERSION%)
Я могу увидеть версию в боковом меню с форматом, который я использовал.
1 ответ
В Groovy, строки, которые используют одинарные кавычки '
не интерполируй Вместо этого вы должны использовать двойные кавычки и использовать $
перед каждой переменной вы хотите заменить (если вы хотите сохранить $
в строке вы должны избежать его с \
).
За writeFile
это команда конвейера, поэтому она работает как master на jenkins master, а не на узле сборки. Вот почему вы должны относиться к нему как таковой (двойные кавычки и $
). трубопровод {агент любой
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"
}
}
}
}
Примечание: я не использую плагин номера версии, поэтому я не смог протестировать этот точный код