Я настраиваю сборку Jenkins на Windows Server 2012 R2 Standard. Часть сборки включает в себя использование НПМ для установки из package.json:Дженкинс построен на Windows Server 2012 с ошибкой из-за узла-gyp, работает из командной строки
package.json
{
"name": "localtest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"directories": {
"test": "test"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": url_for_git_repo
},
"author": "",
"license": "ISC",
"devDependencies": {
"extract-text-webpack-plugin": "^0.8.2",
"jasmine-core": "^2.3.4",
"karma": "^0.13.9",
"karma-chrome-launcher": "^0.2.0",
"karma-jasmine": "^0.3.6",
"karma-mocha-reporter": "^1.1.1",
"karma-phantomjs-launcher": "^0.2.1",
"karma-sourcemap-loader": "^0.3.5",
"karma-webpack": "^1.7.0",
"node-sass": "^3.3.1",
"phantomjs": "^1.9.18",
"raw-loader": "^0.5.1",
"sass-loader": "^2.0.1",
"webpack": "^1.12.0"
}
}
При запуске npm install
из командной строки она работает успешно, но он терпит неудачу, когда Дженкинс строить попытки его. Полный выход Jenkins можно посмотреть на pastebin. Конкретная ошибка, кажется, LINK : fatal error LNK1181: cannot open input file 'C:\Windows\system32\config\systemprofile\.node-gyp\0.12.7\Release\node.lib' [C:\bld\localtest\node_modules\karma\node_modules\socket.io\node_modules\engine.io\node_modules\ws\node_modules\utf-8-validate\build\validation.vcxproj]
. Папка Release
на самом деле не существует в моей системе, чтобы она выглядела разумным сообщением об ошибке, отличным от того, что установка завершается успешно из командной строки (как cmd.exe, так и git bash FWIW).
С этой работой из командной строки я думаю, что проблема связана с какой-либо переменной среды или другим, или, может быть, с ней, но попыталась реплицировать путь из командной строки в сборник Jenkins. Я все еще не имел любая радость. У кого-нибудь есть предложения по тому, что я могу попробовать дальше?
UPDATE 1:
Я просто установить службу Дженкинс, чтобы войти на под моей учетной записи, а не системной учетной записи и перезапустить его. Конструкция выполнена успешно. Я думаю, что это еще более вероятно, что это проблема в переменных среды где-то.
UPDATE 2:
Я установил Environment Injector плагин для Jenkins, чтобы я мог изменить переменные среды, которые отличались между моим пользователем и пользователем системы. Это все равно привело к той же ошибке.