web-dev-qa-db-ja.com

JenkinsとGruntの統合

Windows Server 2008 R2でJenkins v1.550をセットアップしました。現時点では、http://localhost:8080でサービスとして実行されます。管理者としてマシンにログインしています。 Node.jsをインストールし、コマンドラインから「npm」を​​実行できます。

Jenkins用のNodeJSプラグインv0.2.1もインストールしました。次に、Jenkinsの[システムの構成]セクションに移動し、NodeJSインストールまでスクロールダウンし、[NodeJSの追加]ボタンをクリックし、名前に「NodeJS」、インストールディレクトリへのパスに「C:\ Program Files\nodejs」を指定しました。プラグインページでLinuxでのみ使用できることを読んだときに、「自動的にインストール」オプションをチェックしませんでした。

次に、新しいジョブを作成し、「Provide Node&npm bin/folder to PATH」というチェックボックスをクリックして、「Execute Windows batch command」の新しいビルドステップを作成し、「node --version "および" grunt --version "で保存しました。

私は仕事を実行し、これは出力です-

Building in workspace C:\Program Files (x86)\Jenkins\workspace\Test_1.0
[Test_1.0] $ cmd /c call C:\Windows\TEMP\hudson1381541243088903083.bat

C:\Program Files (x86)\Jenkins\workspace\Test_1.0>node --version 
v0.10.24

C:\Program Files (x86)\Jenkins\workspace\Test_1.0>grunt --version 
'grunt' is not recognized as an internal or external command,
operable program or batch file.

C:\Program Files (x86)\Jenkins\workspace\Test_1.0>exit 9009 
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE

Jenkinsが(システム)で実行されているユーザーアカウントのgrunt-cliが見つからないようです。 grunt cliをグローバルに(npm install -g grunt-cli)インストールし、ローカルにgruntをインストールしようとしました(npm install grunt)。運がありません。

誰か助けてくれますか?

19
tempid

マシンに自己インストールされたnodejsを簡単に構成するには、優れたものを推奨する必要があります-> http://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin

nodejsをインストールし、使いやすいWebフロントエンドを介してマシンにうなり声を出して、シェルは不要です。

ジェンキンスのジョブは単純にnodejsビルドステップを実行できます

関連する手順:

a)これをjenkinsインスタンスにインストールします-> http://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin

b)jenkinsにnodejsインストールを作成する

に行きます

http://URL_OF_JENKINS/jenkins/configure
  • NodeJS-> NodeJSインストール-> NodeJSの追加-> Name = "NodeJS 0.11.10"、[自動的にインストール]にチェックマークを付け、[nodejs.orgからインストール]を選択し、グローバルにインストールされたパッケージに "grunt-cli"を追加

c)「NodeJSスクリプトの実行」ビルドタスクでジョブを作成する

var sys = require('sys');
sys.puts('NodeJS Test');
sys.puts('***************');
sys.puts('helloworld');

volia :)

ジョブを実行し、nodejsスクリプトの実行を確認します。

彼らの世界からあなたのオイスターです。「Node/npm binフォルダーをPATHに提供する」にチェックを入れ、「シェルを実行」ビルドタスクを実行することにより、うなり声を使用できます。

npm update
grunt
grunt --force reporting
22
aqm

ノードをインストールした後、おそらくPATH環境変数のキャッシュコピーを更新するために、Jenkinsサービスを再起動する必要があります。

6
Andrew Bullock

私はジェンキンスで私のためにいくつかのタスクを実行するためにうんざりしていますが、私はnpmスクリプトルートに行きました。 Gruntとgrunt-cliはdev依存関係であり、package.jsonファイルで次のものが定義されています。

"scripts": {
    "test": "node node_modules/grunt-cli/bin/grunt test"
},

Jenkins(Windowsで実行)で、2つのビルド後タスクを追加しました。

npm install

npm test

通常、JenkinsサーバーにNodeJをインストールしました。

5
Stuart

Windowsでも同じ問題がありました。ノードを手動でインストールし、コマンドラインからnpm install -g grunt-cliを実行すると、jenkinsはgruntコマンドを認識できませんでした。したがって、ノードをアンインストールして再インストールしますが、npm installは実行しないでください。次に、ジェンキンススレーブを再起動します。次に、特定のjenkinsスレーブで実行されるjenkinsジョブから、npm install -g grunt-cliを実行するWindowsバッチコマンドを実行します。その後、jenkinsサービスを再起動します。次に、ジョブからnpm installを実行します。その後、すべてが私のために働いた。それでも問題が解決しない場合は、スレーブをアンインストールしてから再インストールすると、すべてがすぐに正常に機能します。

1
vanval

Windows上で私のために働いた別の解決策は、コマンドシェルで「where grunt」と書くことで見つけることができるgrunt execファイルへのフルパスを使用することです。通常のbatファイルでフルパスを使用しました。

1
user3114859