Сначала вы можете просто использовать раздел среды, чтобы определить переменные среды, которые известны в вашем сценарии целиком:
pipeline {
agent any
environment {
TEST='myvalue'
}
stages{
stage("build"){
steps{
...
}
}
}
}
Вы также можете определить переменную, известную только за один этап:
pipeline {
agent any
stages{
stage("build"){
environment {
TEST='myvalue'
}
steps{
...
}
}
}
}
Но для вашего решения (используя def над конвейером) вы можете просто сделать:
def someVariable = 'foo'
pipeline{
agent any
stages{
stage("build"){
steps{
echo someVariable
}
}
}
}
Это выдаст 'foo'
.
Более подробную информацию о синтаксисе объявлений переменных можно получить, прочитав онлайн-книгу Jenkins.
UPDATE:
def someVariable = 'foo'
pipeline{
agent any
stages{
stage("build"){
environment {
TEST = sh(script: "echo -n ${someVariable}", returnStdout: true)
}
steps{
sh 'echo "${TEST}"'
}
}
}
}
Выход:
[test] Running shell script
+ echo foo
foo