Jenkins 詹金斯菲尔德赢得';t代换变量

Jenkins 詹金斯菲尔德赢得';t代换变量,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我有一个相当简单的脚本,但Jenkins文件从未替换变量(,因为),我不知道为什么。 我尝试了$since和${since}语法,每次替换都是空的。这些参数工作得很好 since = '' pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '5')) } parameters { str

我有一个相当简单的脚本,但Jenkins文件从未替换变量(
,因为
),我不知道为什么。 我尝试了
$since
${since}
语法,每次替换都是空的。这些参数工作得很好

since = ''

pipeline {
    agent any
    options {
        buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '5'))
    }
    parameters {
        string(defaultValue: '', description: 'The service name you wish to display status', name: 'serviceName')
        choice(choices: ['swarm-group-test', 'swarm-group-prod'], description: 'Swarm environment to remove from', name: 'swarmEnv')
        string(defaultValue: '5', description: 'Number of minutes to look back in logs', name: 'numMinutes')
    }
    tools {
        nodejs "node-js-11.12.0"
    }
    stages {
        stage('Invoke Playbook') {
            steps {
                script {
                    sh (script: "node -p -e \"var a = new Date(); a.setMinutes(a.getMinutes() - ${numMinutes}); a.toISOString();\"", returnStdout: true).trim()
                }
                echo "since: ${since}"
                ansiColor('xterm') {
                    sh '''
                        export ANSIBLE_FORCE_COLOR=true
                        export ANSIBLE_STDOUT_CALLBACK=debug
                        ansible-playbook -b -v -u jenkins playbooks/display-service-status.yml -k --extra-vars="serviceName=$serviceName swarmEnv=$swarmEnv since=$since" -i playbooks/swarm-hosts
                    '''
                }
            }
        }
    }
}
输出:

since: 2019-09-30T12:43:12.134Z
ansible-playbook -b -v -u jenkins playbooks/display-service-status.yml -k '--extra-vars=serviceName=TEST_openam swarmEnv=swarm-group-test since=' -i playbooks/swarm-hosts

我认为不能用单引号字符串替换Jenkins变量


这里有一个有用的文档:

投票人,谢谢你的反馈。