10

次の 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'
}
4

3 に答える 3

22

また

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'

簡潔にするために。

于 2016-04-12T17:40:56.050 に答える
7

私にとっては、次のコードで作業します:

node(){
  def nodeHome = tool 'nodejs5'
  env.PATH="${env.PATH}:${nodeHome}/bin"
  ...
  sh 'npm install'
}

nodejs5 は、Jenkins 構成で指定されたツールの名前です。

于 2016-04-12T15:30:23.743 に答える