Comprende el código correctamente antes de usarlo a tu proyecto si tdeseas aportar algo puedes comentarlo.
La respuesta de Jonathan es correcta en el sentido de que modificar $PATH usando la configuración de la variable de entorno de Jenkins causa este problema, pero simplemente eliminar las personalizaciones de PATH que tiene probablemente hará que pierda funcionalidad, especialmente si tiene algún proyecto de estilo libre en su Jenkins.
Mira, en todo el resto del universo es muy común editar el $PATH configurándolo en tu cosa nueva más el $PATH existente, así:
PATH=/opt/blah/bin:$PATH
esto antepone /opt/blah/bin
a lo que ya está en $PATH
. Así que la final $PATH
podría verse como: /opt/blah/bin:/usr/local/bin:/usr/sbin:/bin
(esto es solo un ejemplo por supuesto)
Esto realmente funciona bien para los proyectos Jenkins Freestyle. Sin embargo, para los proyectos de Pipeline, por alguna razón, Jenkins no evalúa ni reemplaza la variable $PATH en la variable que configuró. Así que literalmente terminas con un camino de /opt/blah/bin:$PATH
– ¡así que nada de lo que estaba allí antes todavía está en su $PATH!
Aparentemente, en lugar de solo corregir ese error, el proyecto Jenkins decidió (1) detectar la condición y mostrar una advertencia extraña (“Advertencia: JENKINS-41339 probablemente falso”) para implicar que debe verificar ese boleto y (2) crear un nuevo forma de definir adiciones a PATH, que es la mejor solución a su problema porque le permite personalizar $PATH sin romper todo. Haces esto en Jenkins->Configure System.
-
Defina una variable llamada
PATH+EXTRA
donde EXTRA aparentemente puede ser lo que sea. -
En esa variable, simplemente ponga sus adiciones para la RUTA. Entonces, en mi ejemplo anterior, NO establecería
PATH
en absoluto, más bien simplemente establecería:
PATH+EXTRA=/opt/blah/bin
-
Ahora elimine cualquier definido
PATH
variable.
Según un ticket relacionado, esto está documentado en algún lugar de Jenkins, pero no está documentado en el lugar donde debe estar, en Administrar Jenkins->Configurar sistema.
Así que parece que la razón fue que la propiedad global PATH
estaba causando el problema. al ir a Manage Jenkins
-> Configure System
y borrando el PATH
La propiedad global resolvió mi problema. Ver JENKINS-41339.
Para solucionar este problema, en caso de que no pueda eliminar la propiedad global PATH de “Administrar Jenkins -> Configurar sistema“, debe agregar el siguiente paso:
withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin'])
Como lo siguiente: para canalización con secuencias de comandos:
node
stage ('STAGE NAME')
withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin'])
sh '//code block'
o para canalización declarativa:
pipeline {
agent
label 'master'
stages {
stage ('STAGE NAME')
steps
withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin'])
sh '''
//code block
'''
Espero que esto ayude. También luché mucho para encontrar una solución para esto.
Recuerda algo, que tienes autorización de glosar si te fue preciso.