2012-09-28 11 views
6

私たちはScala/Javaのショップで、私たちはGradleをビルドに使用し、HudsonをCIに使用します。私たちは最近、mochaのテストでnode.jsコードを書いています。ハドソンでのワークフローと設定にグラデーションワークフローを含めるにはどうしたらいいですか?私はgradle-javascript-pluginを見ましたが、npm testまたはnpmをどのようにインストールしてインストールするのか、またgradle-buildコマンドやgradle-testコマンドを実行する方法がわからず、またHudsonにそれを受けさせてもらえませんでした。NodeJSテストをGradleとHudsonに含めるにはどうすればいいですか?

答えて

3

私はそこに途中で行くことができます。私はこの仕事にも中間ストリームです。少なくともGradle 1.2を持っていることを確認してください。

import org.gradle.plugins.javascript.coffeescript.CoffeeScriptCompile 


apply plugin: 'coffeescript-base' 

repositories { 
    mavenCentral() 
    maven { 
    url 'http://repo.gradle.org/gradle/javascript-public' 
    } 
} 

task compileCoffee(type: CoffeeScriptCompile){ 
    source fileTree('src') 
    destinationDir file('lib') 
} 

参考:私は今、NPMは、EXEC CMDに応じて、グルーヴィーexecの要求とBARFにCMDをインストールする追加することができ、私のCoffeeScriptをコンパイルする方法を提供http://gradle.1045684.n5.nabble.com/State-of-javascript-stuff-in-master-td5709818.html

は標準出力/標準エラー出力に

を提供した結果
npm install 
echo $? 
0 
npm install 
npm ERR! install Couldn't read dependencies 
npm ERR! Failed to parse json 
npm ERR! Unexpected token } 
npm ERR! File: /<>/package.json 
npm ERR! Failed to parse package.json data. 
npm ERR! package.json must be actual JSON, not just JavaScript. 
npm ERR! 
npm ERR! This is not a bug in npm. 
npm ERR! Tell the package author to fix their package.json file. JSON.parse 

npm ERR! System Darwin 11.4.2 
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" 
npm ERR! cwd /<>/ 
npm ERR! node -v v0.8.14 
npm ERR! npm -v 1.1.65 
npm ERR! file /<>/package.json 
npm ERR! code EJSONPARSE 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /<>/npm-debug.log 
npm ERR! not ok code 0 
echo $? 
1 

結果で:

task npmDependencies { 
    def proc = 'npm install'.execute() 
    proc.in.eachLine { line -> println line} 
    proc.err.eachLine { line -> println 'ERROR: '+line } 
    proc.waitFor() 
    if (proc.exitValue()!=0){ 
    throw new RuntimeException('NPM dependency installation failed!') 
    } 
} 

として、モカがテストする限り、私はこれについての最初の知識はありませんが、同様に扱うことができると思われます。

0

あなたは、ドッキングウィンドウのように、あなたはこのGradleのプラグインを好むかもしれない場合は、次の主要なアイデアは、右のビルド後に捨てられます(ただしnode_modulesがにキャッシュされますドッカコンテナ内でごNPMタスクを実行することです https://github.com/dimafeng/containerized-tasks

をあなたのビルドディレクトリ)。したがって、nudをhudson/jenkins/whatever-ciにインストールして、そのバージョンを管理する必要はありません。

plugins { 
    id "com.dimafeng.containerizedTask" version "0.4.0" 
} 

npmContainerizedTask { 
    sourcesDir = 'test-env/gulp' 
    outputLevel = 'INFO' // ALL, DEBUG 
    scriptBody = 'npm install\ngulp' 
} 

sourcesDirがコンテナ内で実行されなければならないあなたのpackage.jsonscriptBodyコマンドでディレクトリです:

はここで、それはのように見えるかもしれ方法の簡単な例です。

次に実行してください./gradlew npmContainerizedTask

関連する問題