在这个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/games:/usr/local/games:/snap/bin
使用节点应用程序,手动部署时,我运行:
npm i
这很有效。
我安装了詹金斯。我尝试安装的Jenkins项目位于:
/var/lib/jenkins/workspace/test
生成正在执行外壳脚本。在该窗口中,我输入:
#!/bin/bash
npm i
当使用 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
如果我只写:
echo $PATH
在Jenkins的外壳里,我得到了这个:
[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
如您所见,我安装了nodejs插件。无论如何,当使用 Jenkins shell 时,找不到 npm 甚至节点。如何让 Jenkins 知道 npm/node 在哪里?我试图首先在shell中写这个:
$PATH=/home/my user/. nv m/version/node/v 6.11.1/bin
但仍然没有运气。
只需为jenkins安装nodeJS插件
,您可以在此处找到它。
安装插件后,重新启动jenkins,并转到全局配置以指定版本。
配置的完整细节可以在上面链接的插件文档中找到。
要访问jenkins 2. x中的插件页面:
只需转到“管理 Jenkins”即可
但是,我确实建议使用管道而不是CI流程的插件:
管道是描述软件交付管道部分的说明。
将此管道配置添加到 jenkins 上的节点.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'
}
}
}
}
正如您所看到的,它运行两个阶段,构建和测试应用程序
npm
通过docker镜像节点安装:6-alpine
。
Jenkins文档提供了通过CI:https://jenkins.io/doc/tutorials/build-a-node-js-and-react-app-with-npm/构建nodejs应用程序的完整教程
这个线程中的答案对我没有帮助,帮助的是将node.js工具添加到我的Jenkinsfile:
pipeline {
agent any
tools {nodejs "nodejs"}
stages {
stage('Example') {
steps {
sh 'npm config ls'
}
}
}
}
其中字符串“nodejs”
是您给节点的名称
。全局工具配置中的js工具
我已经为此奋斗了一段时间。终于找到了解决方案。从您的作业菜单中选择构建环境
下的配置
选择提供节点
正如Eric Wang在评论中指定的那样,需要首先安装
NodeJS插件
才能出现此选项:https://wiki.jenkins.io/display/JENKINS/NodeJS 插件
问题内容: 我在Mac OS上运行Jenkins。我有一个试图在目标之一中执行的ant构建文件。我有正确的路径,因为其中包含了android sdk 和文件夹,但仍然出现以下错误。 如果我将描述的jar从lib文件夹移到文件夹,则会遇到与另一个jar相关的其他类似错误,因此似乎无法从lib文件夹获取此jar。请帮忙。 问题答案: 我解决了我的问题。我有正确的路径和sdk安装目录。问题是我的Jenk
问题内容: 以jenkins用户身份登录时,我在〜/ .ssh / id_rsa.pub中有一个ssh密钥。 我已将其正确导入到bitbucket中,并且已经接受了密钥。 当我尝试进行git clone(正确的URL)时,我仍然得到…。 有人知道发生这种情况的原因吗?根据我读过的文档,〜/ .ssh是jenkins用户的正确目录,此文件存在。 编辑:我的jenkins用户在〜/ .ssh中没有kn
问题内容: 构建外壳为: 结果是: 为什么找不到node命令? 我正在使用docker官方jenkins映像运行它。 编辑:詹金斯:2.46.1-高山 问题答案: 根据问题JENKINS-34815(NodeJS插件无法安装全局NPM软件包)中的建议,检查您 看到这个评论: 使用当前的docker jenkins:2.32.1-alpine和插件nodejs:1.0时,在使用节点7.4时会再次发生
问题内容: 我的xcodebuild通过ant成功运行了。如果我使用ssh进入系统并运行构建,则可以正常工作。但是,当通过Jenkins调用相同的ant目标(在mac上作为从设备运行)时,经典 为了使其正常工作,我尝试通过“ sudo ant”调用来运行它,当然,这会导致相同的错误。本地用户和root用户都回显相同的$ PATH,所以这不是问题。我看不到改变环境或改变Jenkins调用ant的用户
我已经创建了GKE集群,并在该集群上安装了Jenkins。现在我正在运行管道,我已经创建了Jenkinsfile,用于构建DockerImage,但是当我运行管道时,它抛出了未找到Docker的异常 1)创建了GKE集群2)安装了Jenkins 3)添加了Docker集线器凭据4)添加了gitlab的访问密钥 JenkinsFile: stage(“Build Docker Image”){当{b