次のDockerイメージを実行していますjenkinsci/jenkins:2.0-rc-1
jenkins 2.0と「パイプライン」ビューを試す。
ノードをインストールできないようです。これが私のパイプラインスクリプトです。
node {
//tool([name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'])
sh 'echo $(whoami)'
sh 'node -v'
}
これを実行したときの応答は次のとおりです。
[ci] Running Shell script
+ whoami
+ echo jenkins
jenkins
[Pipeline] sh
[ci] Running Shell script
+ node -v
/../durable-3b0b1b07/script.sh: 2: /../durable-3b0b1b07/script.sh: node: not found
これが私が試したものです:
jenkins NodeJSツール(フリースタイルジョブで使用すると正しく動作します)
同じユーザーに対して、Dockerコンテナにログインしてノードを手動でインストールします。
更新:
以下のJesse Glickの回答に基づいて、スクリプトに結果を追加しましたPATH
:
node {
def nodeHome = tool name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'
env.PATH = "${nodeHome}/bin:${env.PATH}"
sh 'npm install'
}
どちらか
node {
withEnv(["PATH+NODE=${tool name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'}/bin"]) {
sh 'node -v'
}
}
または
node {
def nodeHome = tool name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'
sh "${nodeHome}/bin/node -v"
}
うまくいくはずです。さらなる提案については JENKINS-28718 を参照してください。
ちなみに、type
パラメータを省略して、
tool 'node-5.10.1'
簡潔にするために。
私にとっては次のコードを動作させます:
node(){
def nodeHome = tool 'nodejs5'
env.PATH="${env.PATH}:${nodeHome}/bin"
...
sh 'npm install'
}
nodejs5は、Jenkins構成で指定されたツールの名前です。
Windowsで動作するJenkinsで誰かがこの問題に偶然対処した場合。以下をせよ:
def nodeHome = tool 'Node.js 6.9.5'
bat "\"${nodeHome}\"\\node.exe -v"
bat "\"${nodeHome}\"\\npm -v"