Poetry-Befehl nach der Installation auf Jenkins nicht gefunden

Poetry-Befehl nach der Installation auf Jenkins nicht gefunden

Ich verwende Jenkins, um ein Python-Paket mit Poetry zu erstellen. Hier ist der Stage-Befehl zum Installieren von Poetry in der Jenkins-Datei

stage('poetry'){
  steps {
    sh 'curl -sSL https://install.python-poetry.org | python3'
    sh 'export PATH="$HOME/.local/bin:$PATH"'
    sh 'poetry --version'
  }
}

Aber ich bekomme diesen Ausgabefehler während des Builds

sh
+ curl -sSL https://install.python-poetry.org
+ python3
Retrieving Poetry metadata

The latest version (1.4.0) is already installed.
[Pipeline] sh
+ export PATH=/var/lib/jenkins/.local/bin:/var/lib/jenkins/workspace/retina3/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
+ PATH=/var/lib/jenkins/.local/bin:/var/lib/jenkins/workspace/retina3/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[Pipeline] sh
+ poetry --version
/var/lib/jenkins/workspace/retina3@tmp/durable-deb083f7/script.sh: line 1: poetry: command not found

Was könnte falsch sein?

Antwort1

Jeder shBefehl startet seine eigene Shell-Sitzung. Alle Variablen, die Sie in einer Sitzung festlegen, sind daher in einer anderen Sitzung nicht verfügbar. Legen Sie stattdessen die Variable fest und führen Sie den Befehl in derselben Sitzung aus.

sh 'export PATH="$HOME/.local/bin:$PATH"; poetry --version'

verwandte Informationen