2013-07-31 3 views
5

My Jenkins è in esecuzione su CentOS 6 con node.js 0.10.15 e bower 1.0.3.Esecuzione di Bower in un ambiente CI, ad esempio Jenkins

Ho un compito shell che esegue il seguente:

npm install 
bower install 
grunt clean package 

L'installazione non riesce quando gazebo edificio:

+ bower install 

path.js:360 
     throw new TypeError('Arguments to path.join must be strings'); 
      ^
TypeError: Arguments to path.join must be strings 
    at path.js:360:15 
    at Array.filter (native) 
    at Object.exports.join (path.js:358:36) 
    at Object.<anonymous> (/usr/lib/node_modules/bower/node_modules/ 
          update-notifier/node_modules/configstore/configstore.js:9:7) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 

Build step 'Execute shell' marked build as failure 

Quando sto eseguendo bower install in un terminale collegandosi come Jenkins utente, funziona. Gli altri comandi menzionati funzionano come previsto (npm, grunt).

Qualche idea?

risposta

4

Sembra che il proprio ambiente di esecuzione non abbia né $XDG_CONFIG_HOME$HOME impostato come variabili di ambiente.

È possibile aggirare questo impostando manualmente, ad esempio, per l'area di lavoro corrente:

export XDG_CONFIG_HOME="$WORKSPACE/.config" 
... 
bower install 
+1

Grazie, ho situato il variabile d'ambiente HOME nella Jenkins e funziona ora. Qui il link a questo problema su Github: https://github.com/yeoman/configstore/pull/7 – Sebastien