comando de poesia não encontrado após instalá-lo no jenkins

comando de poesia não encontrado após instalá-lo no jenkins

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 shcomando 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'

informação relacionada