2012-04-28 24 views
8

Actualmente estoy tratando de ejecutar una compilación de jenkins para algunas de mis tareas de pepino. Todas mis gemas se han instalado usando el Bundler. Las gemas se almacenan en la carpeta del proveedor.No se puede ejecutar Jenkins Build - paquete: "comando no encontrado"

Sin embargo, cuando intento y funciono bundle install --deployment en el paso de la ejecución acumulación concha, me sale el siguiente error:

Started by user anonymous 
Building in workspace /Users/Shared/Jenkins/Home/jobs/cukes/workspace 
[workspace] $ /bin/sh -xe/var/folders/zz/zyxvpxvq6csfxvn_n0000004000001/T/hudson4461284045505361460.sh 
+ bundle install --deployment 
/var/folders/zz/zyxvpxvq6csfxvn_n0000004000001/T/hudson4461284045505361460.sh: line 2: bundle: command not found 
Build step 'Execute shell' marked build as failure 
Finished: FAILURE 

Esto me está volviendo loco! Se ejecuta en mi máquina local sin problemas. ¿Por qué Jenkins no puede ver mis gemas?

¡Cualquier ayuda sería genial!

Saludos, Jon

Respuesta

2

Lo primero es lo que verifican:

  • Asegúrese bundle está instalado en la máquina donde se ejecuta Jenkins.
  • Si tiene instalado, asegúrese de que está en el camino para el usuario con el que Jenkins se ejecuta

(Para verificar ruta/medio ambiente: inserte paso de generación de shell que se ejecuta env)

10

Dependiendo de la forma en que Jenkins instalado, podría estar ejecutándose como un usuario separado, generalmente como usuario jenkins. Si ha instalado bundle en un directorio no estándar que no está en la ruta predeterminada, como /usr/local/bin, es necesario:

  • Añadir /usr/local/bin en el PATH del usuario Jenkins (Jenkins cheque ~/.bashrc) o
  • Configure la variable de entorno PATH en la configuración global de Jenkins (o la configuración del esclavo si se basa en un esclavo) o
  • Modifique el script de construcción para hacer referencia al bundle usando un nombre de ruta completo.
+0

Hola, agregué/bin/bash en su lugar/usr/bin/bash no estaba disponible. Estoy usando centos. –

1

Si paquete se instala en /usr/local/bin/bundle (determinar esto con which bundle) sólo podría añadir un enlace simbólico para agrupar en /usr/bin así:

ln -s /usr/local/bin/bundle /usr/bin/bundle

0

Se podía ver dónde está bundle se instala de ejecutando which bundle y ejecutando el comando bundle desde allí