我正在尝试使用Jenkins为我的node.js应用程序设置CI / CD管道。
我想要做的是通过jenkins登录到我的应用程序服务器,并借助ssh插件发布在服务器上执行命令 (https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin)。
我选择了Send Files or Execute commands over SSH
选项,并在Exec command
部分中添加了以下命令。
cd <project-folder> && git pull origin master && npm install
我遇到类似npm not found
的错误,但我尝试直接在服务器上没有错误。
所以我认为jenkins存在许可问题,但是我找不到解决方法
答案 0 :(得分:0)
是,您已正确识别问题...其权限问题.. 我假设您已经在jenkins的“配置系统”部分的“ SSH远程主机”上添加了根登录详细信息。
在“构建环境”中,选择“使用ssh在远程主机上执行shell脚本”,然后使用以下
cd <project-folder> (Ex: cd /var/lib/jenkins/workspace/<project-folder>)
npm install
注意:您应该在服务器中提供完整的服务器路径以避免权限..如果您使用的是localhost,则它可能会起作用,并且当您使用“使用ssh在远程主机上执行shell脚本”时,其他操作也非常重要,您应该访问只能通过root用户通过cpanel帐户登录。.这样可以避免权限问题。
一旦安装了NPM,请检查控制台日志中的“成功”,然后执行其他命令并建议删除“ npm install”,因为多次安装会增加应用程序的编译时间。