如何使用jenkins变量作为execute命令
我是詹金斯的新手。我正在尝试建立一个管道。 我有上面的代码,工作正常,但我想传递基于环境dev/uat的执行命令 我在准备阶段创建了变量script_arg,并希望在部署阶段将其用作execCommand 部署-->步骤-->sshPublisher-->发布服务器-->sshPublisherDesc-->传输 但当我替换它如下如何使用jenkins变量作为execute命令,jenkins,jenkins-pipeline,jenkins-plugins,jenkins-groovy,Jenkins,Jenkins Pipeline,Jenkins Plugins,Jenkins Groovy,我是詹金斯的新手。我正在尝试建立一个管道。 我有上面的代码,工作正常,但我想传递基于环境dev/uat的执行命令 我在准备阶段创建了变量script_arg,并希望在部署阶段将其用作execCommand 部署-->步骤-->sshPublisher-->发布服务器-->sshPublisherDesc-->传输 但当我替换它如下 stage('Preparation') { steps { script{
stage('Preparation') {
steps {
script{
if(Deployment == 'UAT'){
goals = 'mvn clean install -Denvironment=uat '
script_arg='''shutdown.sh uat | sleep 20 | startup.sh uat'''
}
else{
goals = 'mvn clean install -Denvironment=dev'
script_arg='''shutdown.sh dev | sleep 20 | startup.sh dev'''
}
}
}
}
stage('Build') {
steps{
sh goals
}
}
stage('Deploy') {
steps([$class: 'BapSshPromotionPublisherPlugin']) {
sshPublisher(
continueOnError: false, failOnError: true,
publishers: [
sshPublisherDesc(
configName: "ABC",
verbose: true,
transfers: [
sshTransfer(sourceFiles: "target/abcd.war",
removePrefix: "/target",
remoteDirectory: "/remote",
execCommand: '''shutdown.sh uat | sleep 20 | startup.sh uat''')
]
)
]
)
}
}
这不起作用。尝试在管道外部定义变量,请参见下面的内容
execCommand: "${script_arg}"
您在何处添加了此execCommand?部署-->步骤-->SSHPPublisher-->发布服务器-->SSHPPublisherDESC-->传输我正在用代码“${script\u arg}”替换上述位置的execCommand,但没有成功。我是否在单引号中出错我在单引号中出错代码需要用作execCommand:“${script_arg}”
def script_arg
pipeline {
stages {
stage() {}
stage() {}
...
}
}