Jenkinsfile получить доступ к существующей переменной среды

Как получить доступ к существующей переменной среды SOME_VAR внутри environment блок?

Я хочу переопределить его под новым именем NEW_VAR?

pipeline {
    agent {
        label any
    }
    environment {
        SECRET = credentials('secret-credential') // works as expected
        NEW_VAR = ? // get from different env variable
    }
    stages {
        stage('Test') {
            steps {
                echo "SECRET=${env.SECRET}"
                echo "NEW_VAR=${env.NEW_VAR}"
            }
        }
    }
}

Что я пробовал до сих пор:

NEW_VAR = SOME_VAR        // fails build
NEW_VAR = env.SOME_VAR    // fails build
NEW_VAR = ${env.SOME_VAR} // fails build
NEW_VAR = env('SOME_VAR') // does not fail, but NEW_VAR is null
NEW_VAR = env(SOME_VAR)   // does not fail, but NEW_VAR is null

1 ответ

Решение

Использовать этот:

environment {
    NEW_VAR = "${env.SOME_VAR}"
}

Таким образом, вы выполняете интерполяцию строк, а затем присваиваете строковое значение новой переменной.
Только что проверил, это должно работать.

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