2012-09-28 10 views
6

हम एक स्कैला/जावा शॉप हैं और हम सीआई के लिए हमारे निर्माण और हडसन के लिए ग्रैडल का उपयोग करते हैं। हमने हाल ही में मोचा में परीक्षण के साथ कुछ node.js कोड लिखा था। क्या हडसन में हमारे ग्रेडल वर्कफ़्लो और सेटअप में शामिल होने के लिए वैसे भी है? मैंने gradle-javascript-plugin पर ध्यान दिया लेकिन मुझे यह पता नहीं लगा कि एनपीएम टेस्ट या एनपीएम को कैसे इंस्टॉल किया जाए और यह सुनिश्चित न करें कि इसे ग्रेडल-बिल्ड या ग्रेडल-टेस्ट कमांड के माध्यम से कैसे चलाया जाए और हडसन को इसे चुनने दें।ग्रैडल और हडसन में नोडजेएस परीक्षणों को कैसे शामिल किया जाए?

उत्तर

3

मैं आपको वहां से रास्ते का हिस्सा ले सकता हूं, मैं इस कार्य पर भी मध्य-स्ट्रीम हूं। सुनिश्चित करें कि आपके पास कम से कम 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') 
} 

संदर्भ: http://gradle.1045684.n5.nabble.com/State-of-javascript-stuff-in-master-td5709818.html

एक तरह से NPM मेरी coffeescript संकलित करने के लिए मैं अब भी जोड़ सकते हैं के साथ प्रदान की एक ग्रूवी कार्यकारी अनुरोध और barf कार्यकारी cmd पर निर्भर करता है में cmd ​​स्थापित प्रदान परिणाम stdout/stderr

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 प्लगइन पसंद कर सकते हैं पसंद है: https://github.com/dimafeng/containerized-tasks

मुख्य विचार एक डोकर कंटेनर जो दूर सही निर्माण के बाद फेंक दिया जाएगा अंदर अपने NPM कार्यों (लेकिन node_modules में संचित किया जाएगा चलाने के लिए है आपकी निर्माण निर्देशिका)। तो आपको अपने हडसन/जेनकींस/जो भी सीआई पर एनपीएम स्थापित करने और इसके संस्करणों को प्रबंधित करने की आवश्यकता नहीं है।

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

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

कहाँ, sourcesDir अपने package.json, scriptBody आदेशों जो कंटेनर के अंदर निष्पादित किया जाना चाहिए के साथ एक निर्देशिका है:

यह इस प्रकार से दिखाई दे सकता है का एक सरल उदाहरण है।

फिर बस ./gradlew npmContainerizedTask

चलाएं
संबंधित मुद्दे