#powershell #environment-variables #jenkins-pipeline
#powershell #среда-переменные #дженкинс-конвейер
Вопрос:
Я использую Jenkins и конвейерный Jenkinsfile с агентом Windows. Я хочу установить проверяемую из powershell на 1-м шаге и использовать это значение на 2-м шаге после.
мой конвейер:
def MSVERSION
pipeline {
stages {
stage('Clean workspace') {
steps {
deleteDir()
}
}
stage('package') {
steps {
script {
def stdout = powershell(returnStdout: true, script: '''
$MSVERSION="1234"
write-host "MSVERSION is $MSVERSION"
''')
println stdout
}
}
}
stage('deploy') {
steps {
script {
bat 'echo MSVERSION is ${MSVERSION}'
}
bat 'echo MSVERSION is ${MSVERSION}'
}
}
}
}
но мой результат:
MSVERSION is 1234
MSVERSION is ${MSVERSION}
MSVERSION is ${MSVERSION}
Редактировать
Я нахожу работу вслух, но сегодня это не мой вопрос:
в powershell я пишу файл var.propertie:
set-Content -path "var.properties" -Value "MSVERSION=$($VERSION)"
и в моем скрипте я прочитал этот файл var.properties:
properties = readProperties file: 'var.properties'
echo "MSVERSION is ${properties.MSVERSION}"
Ответ №1:
bat 'echo MSVERSION is ${MSVERSION}'
не выполняет интерполяцию строк, но это делает:
bat "echo MSVERSION is ${MSVERSION}"