Я пытаюсь запустить команду forever для скрипта node.js, чтобы запустить его в фоновом режиме. Моя полная команда:forever run для node.js с использованием jenkins на окнах
"C:/Users/Administrator/AppData/Roaming/npm/forever.cmd" -c "C:/Program Files/nodejs/node.exe" start app.js
Это нормально работает, когда я запускал ее непосредственно в командной строке. Однако, когда я положил его в качестве шага сборки в Дженкинс я всегда получаю следующую ошибку
C:\Program Files (x86)\Jenkins\workspace\apps>"C:/Users/Administrator/AppData/Roaming/npm/forever.cmd" -c "C:/Program Files/nodejs/node.exe" start app.js
'node' is not recognized as an internal or external command,
operable program or batch file.
Build step 'Execute Windows batch command' marked build as failure
PATH на машине правильно установить и включить путь к приложению узла. Это подтверждается тем, что команда запускается успешно при локальном запуске на подчиненном компьютере без предоставления абсолютного пути. Также я предоставляю путь к исполняемому узлу в самой команде с использованием опции -c в случае, если она не выбирает из переменной PATH.
Не уверен, что это может быть из-за того, что jenkins запускают вещи в окне с помощью JVM-клиента?
Любые предложения для этого.
Благодаря Манодж
Вы используете forever-win https://www.npmjs.com/package/forever-win? – Slav
Я использую forever установленную, используя npm install forever -g команду на окнах. Поскольку команда работает нормально при запуске локально на компьютере Windows, я не вижу проблемы с вечным пакетом. Проблема заключается в том, как jenkins управляет этой командой на окнах. Поскольку на самом деле сам узел вызывает внутри него, интересно, какая-то конфигурация требуется на уровне дженкинсов (в JVM-клиенте с Jenkins работает для подключения к оконной машине.) –
Проблема по-прежнему остается в вопросе 'PATH'. Дженкинс не может работать под тем же именем, что и ваш локальный пользователь (который вы пробовали тесты командной строки). Простой тест: запускайте сборку, которая имеет только команду «Выполнение Windows Batch Command», и там пишут только 'set'. Это напечатает все переменные среды. Убедитесь, что все они правильные, и путь установлен правильно. – Slav