Die Verwendung von Parametern innerhalb eines shell-Befehls in Jenkinsfile für Jenkins pipeline

Will ich mit den vorgegebenen Parametern in Jenkinsfile in mehrere shell-Befehle, aber ich bekomme eine exception. In meinem Beispiel möchte ich ausführen, einen einfachen Befehl Andockfenster. Der parameter definiert den Pfad zu Andockfenster ausführbare Datei.

Dies ist meine sehr kurze Jenkinsfile:

pipeline {
  agent any

  parameters {
    string(defaultValue: '/Applications/Docker.app/Contents/Resources/bin/docker', description: '', name: 'docker')
  }

  stages {
    stage('Test') {
      steps {
        sh 'sudo ${params.docker} ps -a'
      }
    }
  }
}

Und ich bekomme die folgende exception:

[e2e-web-tests_master-U4G4QJHPUACAEACYSISPVBCMQBR2LS5EZRVEKG47I2XHRI54NCCQ] Running shell script
/Users/Shared/Jenkins/Home/workspace/e2e-web-tests_master-U4G4QJHPUACAEACYSISPVBCMQBR2LS5EZRVEKG47I2XHRI54NCCQ@tmp/durable-e394f175/script.sh: line 2: ${params.docker}: bad substitution

Wenn ich das Jenkinsfile ohne Verwendung der Parameter innerhalb der shell-Befehl übergibt er erfolgreich:

pipeline {
  agent any

  parameters {
    string(defaultValue: '/Applications/Docker.app/Contents/Resources/bin/docker', description: '', name: 'docker')
  }

  stages {
    stage('Test') {
      steps {
        sh 'sudo /Applications/Docker.app/Contents/Resources/bin/docker ps -a'
      }
    }
  }
}

So, wie kann ich Parameter in einem shell-Befehl in Jenkinsfile? Ich habe versucht string und text als parameter-Typen.

InformationsquelleAutor Martin | 2017-08-23
Schreibe einen Kommentar