2015-04-02 3 views
8

Я установил глоток во всем мире (npm install gulp -g). Но это не работает, я думаю. Когда я делаю тест gulp в своей локальной программе, он отлично работает. Но когда я делаю тест gulp на моей (той же) программе из github (на Jenkins), он дает следующую ошибку. Он не распознает команду gulp. Может кто-нибудь мне помочь? Благодаря Ошибка в Дженкинс:Gulp не работает в 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 

Но в командной строке он работал хорошо.

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 

ответ

13

Для изготовления знать, где ваш глоток это вы должны определить, глотку, чтобы ENV глобально (для всех пользователей) или просто запустить gulp.js через узел каждый раз:

node node_modules\gulp\bin\gulp.js test 

Помните, что Дженкинс не знать что-либо о ваших пользовательских переменных, это делается для четкого тестирования. Единственные переменные ENV, которые он знает, являются глобальными.

+0

Существует папка с именем «.bin», которую вы можете использовать для запуска глотки. node_modules \ .bin \ gulp test – FireGnome

0

На вашей машине Windows перейдите к свойствам службы Jenkins и измените пользователя входа в систему для пользователя, отличного от System, для службы Jenkins. Я использовал свои учетные данные для входа в систему, чтобы заставить его работать, и теперь я запускаю команды gulp для сборки из Jenkins на моем slave-устройстве без проблем. node, npm и gulp все команды распознаются.