I'm trying to set up a string parameter which will reference a variable
which will be created within the pipeline. For instance, when building a
parameterized build, the user enters a file path in this
format: /srv/jboss/server/${MAL}/log/
Where MAL is assigned via the pipeline and then I try to ls -ltr the fully
qualified path after MAL has been expanded. However I'm not getting it to
expand; wondering what I'm doing wrong.
node {
MALarray = params.multi.split(',')
MALarray.each { MAL ->
if (MAL in ['care''] ) {
servers = ['xx.xx.xx.xx','xx.xx.xx.xx']
}
def soc_remote = [:]
soc_remote.name = "${MAL} SOC"
soc_remote.allowAnyHosts = true
withCredentials([usernamePassword(credentialsId: 'Credentials',
usernameVariable: 'USER_ID', passwordVariable: 'USER_PASSWORD')]) {
soc_remote.user = USER_ID
soc_remote.password = USER_PASSWORD
servers.each { server ->
soc_remote.host = server
stage("Run script on ${server}") {
try {
echo("MAL is ${MAL}")
sshCommand remote: soc_remote, command: "ls -ltr ${filepath}"
} catch (err) {
echo "something failed"
echo "${err}"
}
}
}
}
}
}
Console output:
*11:59:34* MAL is care
*11:59:34* [Pipeline] sshCommand
<https://abaapvsc01amcba.tdbfg.com:9443/job/CraigTest/job/variable%20inside%20variable/2/console#>
*11:59:34* Executing command on care SOC[xx.xx.xx.xx]: ls -ltr
/srv/jboss/server/${MAL}/log/ sudo: false
*11:59:35* ls: cannot access /srv/jboss/server//log/: No such file or
directory
*11:59:35* Failed command care SOC#1002 with status 2: ls -ltr
/srv/jboss/server/${MAL}/log/
--
You received this message because you are subscribed to the Google Groups
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/11fcfc93-6e5c-4f50-a637-964e06bf66een%40googlegroups.com.