Передать строковый параметр в декларативный скрипт Jenkins

Я объявляю строковый параметр в Jenkins -

Name is SLACKTOKEN 
Value is qwsaw2345

В моем файле Jenkins есть скрипт

pipeline {

    agent { label 'trial' }

    stages {
        stage("Build Docker Image") {
            steps{
                sh 'docker build -t trial:latest --build-arg SLACK_SIGNING_SECRET=${SLACKTOKEN}'
            }
        }


    }
}

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

введите описание изображения здесь

Всего 2 ответа


Где вы объявили свою переменную?

Вариантов много:

Пример: использовать раздел env из декларативного синтаксиса:

    pipeline {
        agent {
            label 'trial'
        }

        environment {
            SLACKTOKEN = 'qwsaw2345'
        }

        stages {
            stage('Build') {
                steps {
                    sh "docker build -t trial:latest --build-arg SLACK_SIGNING_SECRET=${SLACKTOKEN}"
                }
            }
        }
    }

Внутри директивы parameters вы можете предоставить параметры, подробности здесь .

Для передачи параметра используйте params.SLACKTOKEN внутри двойных кавычек, а не одинарных:

pipeline {

    agent { label 'trial' }
    parameters {
        password(name: 'SLACKTOKEN', defaultValue: '', description: 'Slack Token')
    }
    stages {
        stage("Build Docker Image") {
            steps{
                sh "docker build -t trial:latest --build-arg SLACK_SIGNING_SECRET=${params.SLACKTOKEN}"
            }
        }
    }
}