Estou usando Jenkins para construir um pacote python usando poesia, aqui está o comando stage para instalar poesia no Jenkinsfile
stage('poetry'){
steps {
sh 'curl -sSL https://install.python-poetry.org | python3'
sh 'export PATH="$HOME/.local/bin:$PATH"'
sh 'poetry --version'
}
}
Mas recebo este erro de saída durante a compilação
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
O que pode estar errado?
Responder1
Cada sh
comando inicia sua própria sessão de shell. Portanto, quaisquer variáveis definidas em uma sessão não estarão disponíveis em outra sessão. Em vez disso, defina a variável e execute o comando na mesma sessão.
sh 'export PATH="$HOME/.local/bin:$PATH"; poetry --version'