Estoy usando Jenkins para crear un paquete de Python usando poesía, aquí está el comando stage para instalar poesía en Jenkinsfile
stage('poetry'){
steps {
sh 'curl -sSL https://install.python-poetry.org | python3'
sh 'export PATH="$HOME/.local/bin:$PATH"'
sh 'poetry --version'
}
}
Pero recibo este error de salida durante la compilación.
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
¿Qué podría estar mal?
Respuesta1
Cada sh
comando inicia su propia sesión de shell. Por lo tanto, las variables que establezca en una sesión no estarán disponibles en otra sesión. En su lugar, configure la variable y ejecute el comando en la misma sesión.
sh 'export PATH="$HOME/.local/bin:$PATH"; poetry --version'