2015-04-02 18 views
8

Ho installato gulp a livello globale (npm install gulp -g). Ma non funziona, penso. Quando sto facendo il test di gulp sul mio programma locale funziona bene. Ma quando sto facendo un test sul mio (lo stesso) programma da github (su Jenkins), dà il seguente errore. Non riconoscerà il comando gulp. Qualcuno può aiutarmi? Grazie Errore in Jenkins:Gulp non funziona in Jenkins

[EnvInject] - Loading node environment variables. 
Building in workspace C:\Program Files (x86)\Jenkins\workspace\project1 
> C:\Program Files (x86)\Git\bin\git.exe rev-parse --is-inside-work-tree # timeout=10 
Fetching changes from the remote Git repository 
> C:\Program Files (x86)\Git\bin\git.exe config remote.origin.url https://github.com/Jelle7/project1.git # timeout=10 
Fetching upstream changes from https://github.com/Jelle7/project1.git 
> C:\Program Files (x86)\Git\bin\git.exe --version # timeout=10 
> C:\Program Files (x86)\Git\bin\git.exe -c core.askpass=true fetch --tags --progress https://github.com/Jelle7/project1.git +refs/heads/*:refs/remotes/origin/* 
> C:\Program Files (x86)\Git\bin\git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 
> C:\Program Files (x86)\Git\bin\git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 
Checking out Revision 6fe866ee6937a4862ac501c6ce185eda64067ed8 (refs/remotes/origin/master) 
> C:\Program Files (x86)\Git\bin\git.exe config core.sparsecheckout # timeout=10 
> C:\Program Files (x86)\Git\bin\git.exe checkout -f 6fe866ee6937a4862ac501c6ce185eda64067ed8 
> C:\Program Files (x86)\Git\bin\git.exe rev-list 6fe866ee6937a4862ac501c6ce185eda64067ed8 # timeout=10 
[karma-test] $ cmd /c call C:\Windows\TEMP\hudson8554225917848574447.bat 

C:\Program Files (x86)\Jenkins\workspace\project1>gulp test 
gulp is not recognized as an internal or external command 

C:\Program Files (x86)\Jenkins\workspace\project1>exit 9009 
Build step 'Run Windows batch command.' marked build as failure 
Finished: FAILURE 

Ma in linea di comando ha funzionato bene.

C:\Program Files (x86)\Jenkins\workspace\project1>gulp test 
[15:18:56] Using gulpfile C:\Program Files (x86)\Jenkins\workspace\project1\gulp 
file.js 
[15:18:56] Starting 'scripts'... 
[15:18:57] all files 3.26 kB 
[15:18:57] Finished 'scripts' after 387 ms 
[15:18:57] Starting 'test'... 
INFO [karma]: Karma v0.12.31 server started at http://localhost:9876/ 
INFO [launcher]: Starting browser PhantomJS 
WARN [watcher]: Pattern "C:/Program Files (x86)/Jenkins/workspace/project1/src/* 
*/*.mock.js" does not match any file. 
INFO [PhantomJS 1.9.8 (Windows 7)]: Connected on socket qZEPgByCA2MGyk1w_0TI wit 
h id 43463083 
PhantomJS 1.9.8 (Windows 7): Executed 1 of 1 SUCCESS (0.01 secs/0.017 secs) 
[15:18:59] Finished 'test' after 2.44 s 

risposta

13

Per rendere sapere dove il vostro fiato è che si dovrebbe definire sorso ENV a livello globale (per tutti gli utenti) o semplicemente eseguire gulp.js tramite nodo ogni volta:

node node_modules\gulp\bin\gulp.js test 

Ricordate che Jenkins non lo fa sapere qualcosa sulle tue variabili utente, questo è fatto per test chiari. Le uniche variabili ENV che conosce sono quelle globali.

+0

C'è una cartella chiamata ".bin" che potresti voler usare per eseguire gulp. node_modules \ .bin \ gulp test – FireGnome

0

Sul computer Windows accedere alle proprietà del servizio Jenkins e modificare l'utente di accesso a un utente diverso da System per il servizio Jenkins. Ho usato le credenziali dell'utente connesso per farlo funzionare e ora sto eseguendo i comandi gulp per costruire da Jenkins sul mio Windows Slave senza alcun problema. I comandi node, npm e gulp sono tutti riconosciuti.