wanderors
wanderors

Reputation: 2292

Pass a string parameter to Jenkins declarative script

I am declaring a String Parameter in Jenkins -

Name is SLACKTOKEN 
Value is qwsaw2345

My Jenkins file has script

pipeline {

    agent { label 'trial' }

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


    }
}

I tried like this, but it didnt work. Could you please let me know how can I pass a value from Jenkins string parameter to Jenkins declarative script file. I have added the Password parameter in job like below

enter image description here

Upvotes: 0

Views: 2956

Answers (2)

Sers
Sers

Reputation: 12255

Inside parameters directive you can provide parameters, details is here.

To pass parameter use params.SLACKTOKEN inside double quotes, not single:

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}"
            }
        }
    }
}

Upvotes: 1

Chris
Chris

Reputation: 672

Where have you declared your variable?

There are a lot of options:

Example: Use env section from declarative syntax:

    pipeline {
        agent {
            label 'trial'
        }

        environment {
            SLACKTOKEN = 'qwsaw2345'
        }

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

Upvotes: 0

Related Questions