Search code examples
powershelljenkinsgroovyjenkins-pipeline

Passing variables to powershell script block in a jenkins pipeline


Is there a way to use groovy variables inside a powershell script? My sample script is as following..

  node {
  stage('Invoke Installation') {
  def stdoutpowershell
  def serverName = env.fqdn
  withEnv(['serverName =  $serverName']) {
      echo "serverName : $serverName"
      stdoutpowershell = powershell returnStdout: true, script: '''
          write-output "Server is $env:serverName"
      '''
  }
  }

Solution

  • You cannot interpolate variables in single quotes or triple-single quotes. Use triple-double-quotes:

      stdoutpowershell = powershell returnStdout: true, script: """
          write-output "Server is $env:serverName"
      """