Laden Sie die Datei mit Umgebungsvariablen Jenkins Pipeline

Ich mache eine einfache pipeline:

Bauen -> Staging -> Produktion

Brauche ich verschiedene Umgebungsvariablen für die Inszenierung und Produktion, so versuche ich Quelle Variablen.

sh 'source $JENKINS_HOME/.envvars/stacktest-staging.sh' 

Aber es gibt Nicht gefunden

[Stack Test] Running shell script
+ source /var/jenkins_home/.envvars/stacktest-staging.sh
/var/jenkins_home/workspace/Stack Test@tmp/durable-bcbe1515/script.sh: 2: /var/jenkins_home/workspace/Stack Test@tmp/durable-bcbe1515/script.sh: source: not found

Den Pfad richtig ist, weil ich den gleichen Befehl ausführen, wenn ich mich einloggen via ssh, und es funktioniert gut.

Hier ist die pipeline-Idee:

node {
    stage name: 'Build'
    //git and gradle build OK
    echo 'My build stage'

    stage name: 'Staging'
    sh 'source $JENKINS_HOME/.envvars/stacktest-staging.sh' //PROBLEM HERE
    echo '$DB_URL' //Expects http://production_url/my_db
    sh 'gradle flywayMigrate' //To staging
    input message: "Does Staging server look good?"    

    stage name: 'Production'
    sh 'source $JENKINS_HOME/.envvars/stacktest-production.sh'
    echo '$DB_URL' //Expects http://production_url/my_db
    sh 'gradle flywayMigrate' //To production
    sh './deploy.sh'
}

Was soll ich tun?

  • Ich war denken nicht mit dem pipeline (aber ich werde nicht in der Lage sein, um meine Jenkinsfile).
  • Oder machen verschiedene jobs für die Inszenierung und Produktion, mit EnvInject Plugin (Aber ich verliere meine Bühne view)
  • Oder machen withEnv (aber der code wird groß, denn heute arbeite ich mit 12 env vars)
InformationsquelleAutor Rafael | 2016-08-26
Schreibe einen Kommentar