ode*_*fla 10 linux node.js npm jenkins
在这个linux服务器上,我有一个名为"myuser"的用户.对于这个用户,当回显路径时,我得到这个:
/home/myuser/bin:/home/myuser/.local/bin:/home/myuser/.nvm/versions/node/v6.11.1/bin:/usr/local/sbin:/usr/local/bin:/ usr/sbin目录:在/ usr/bin中:/ sbin目录:/ bin中:在/ usr /游戏:在/ usr /本地/游戏:/卡/箱
拥有节点应用程序,在手动部署时运行:
npm i
Run Code Online (Sandbox Code Playgroud)
它有效.
现在,我安装了詹金斯.我正在尝试安装的Jenkins项目位于:
/var/lib/jenkins/workspace/test
Run Code Online (Sandbox Code Playgroud)
构建正在执行shell脚本.在那个窗口我输入了:
#!/bin/bash
npm i
Run Code Online (Sandbox Code Playgroud)
与Jenkins一起构建时,我得到了这个:
[test] $ /bin/bash /tmp/jenkins756533162549346948.sh
/tmp/jenkins756533162549346948.sh: line 3: npm: command not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)
如果我只写:
echo $PATH
Run Code Online (Sandbox Code Playgroud)
在Jenkins shell中,我得到了这个:
[test] $ /bin/sh -xe /tmp/jenkins5067097808572366507.sh
+ echo /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
[test] $ /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/6.11.1/bin/node /tmp/jenkins8733250738704177758.js
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)
如您所见,我安装了nodejs插件.无论如何,当使用Jenkins shell时,找不到npm和even节点.如何让Jenkins知道npm/node在哪里?我试着先在shell中写这个:
$ PATH = /家/ myuser的/ .nvm /版本/节点/ v6.11.1 /箱
但仍然没有运气.
Den*_*and 13
该线程中的答案对我没有帮助,帮助的是将 node.js 工具添加到我的 Jenkinsfile 中:
pipeline {
agent any
tools {nodejs "nodejs"}
stages {
stage('Example') {
steps {
sh 'npm config ls'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
字符串"nodejs"是name您在global tool configuration
tut*_*tug 13
我一直在与这个斗争一段时间。终于找到了解决办法。从您的任务菜单中选择Configure下Build Environment选择Provide Node & npm bin/ folder to PATH您可以保留默认设置,你是好去。
正如 Eric Wang 在评论中指定的,NodeJS Plugin需要先安装这个选项才能出现:https :
//wiki.jenkins.io/display/JENKINS/NodeJS+Plugin
只需安装nodeJS pluginfor jenkins,即可在此处找到它。
安装插件后,重新启动jenkins,然后转到全局配置以指定版本。
可以在上面链接的插件文档中找到配置的完整详细信息。
要进入jenkins 2.x的插件页面:
只需
Manage Jenkins > Manage Plugins查看即可,Jenkins环境的管理员可以使用。- https://jenkins.io/doc/book/managing/plugins/
但是,我建议为CI流程使用管道而不是插件:
管道是描述软件交付管道各部分的说明。
将此管道配置添加到jenkins上的node.js项目中,以使其运行。
pipeline {
agent {
docker {
image 'node:6-alpine'
args '-p 3000:3000'
}
}
environment {
CI = 'true'
}
stages {
stage('Build') {
steps {
sh 'npm install'
}
}
stage('Test') {
steps {
sh './jenkins/scripts/test.sh'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,这运行两个阶段,即为应用程序构建和测试。npm通过docker镜像安装node:6-alpine。
Jenkins文档提供了完整的教程来通过CI构建Node.js应用程序:https ://jenkins.io/doc/tutorials/build-a-node-js-and-react-app-with-npm/
小智 6
如果您使用的是管道。
每当你想在管道中使用 npm 时,请使用:
nodejs('<name of your Node installation>'){
//here your npm commands p.e.
npm install
npm run prod
}
Run Code Online (Sandbox Code Playgroud)首先,进入管理 Jenkins /全局工具配置,配置 nodejs 安装程序,如下所示。
现在转到 Jenkinsfile 并包含上述工具。
tools {nodejs "NODEJS"} //name should be similar to name used for installer in the global tool configuration.
Run Code Online (Sandbox Code Playgroud)
这对我有用。
| 归档时间: |
|
| 查看次数: |
17739 次 |
| 最近记录: |