Reputation: 61
i would like to use a jenkins environment variable inside a power shell script.Here ${destination} is coming as null inside powershell script.Not able to identify what is the mistake i am doing.Please help
# !/bin/groovy
pipeline {
agent {
label {
label ""
customWorkspace "C:\\Jenkins\\workspace"
}
}
environment {
def destination=''
}
options {
timestamps()
timeout(time: 60, unit: 'MINUTES')
skipDefaultCheckout(true)
disableConcurrentBuilds()
}
stages {
stage('TEST')
{
steps {
script{
destination="\\\\SERVERNAME\\d\$"
}
echo "${destination}"
powershell '''
$destinationPath ="${destination}"
write-host $destinationPath
write-host "test3" '''
}
}
}
post {
always {
deleteDir()
}
}
Upvotes: 6
Views: 11725
Reputation: 2214
You can resolve this using either one of two methods, whichever suits you best:
Use """ instead of ''' to be able to substitute destination
with its value. When using this approach you should escape Powershell's variable identifiers to avoid unwanted substitutions, like so: \$destinationPath = "${destination}"
Export your Jenkins variables as environment variables:
withEnv(["DESTINATION=$destination"]) {
powershell '''
$destinationPath ="$env:DESTINATION"
...
'''
}
Upvotes: 11