Wir sind ein Scala/Java-Shop und wir verwenden Gradle für unser Build und Hudson für CI. Wir haben kürzlich einen node.js-Code mit Tests in Mocha geschrieben. Gibt es überhaupt etwas, das wir in unseren Horizon-Workflow integrieren? Ich schaute auf die gradle-javascript-plugin, aber ich konnte nicht herausfinden, wie man npm Test oder npm installieren durch sie und nicht sicher, wie es durch grdle-build oder grddle-Test-Befehle laufen lassen und lassen Sie es auch Hudson abholen.Wie können NodeJS-Tests in Gradle und Hudson integriert werden?
Antwort
Ich kann Ihnen einen Teil des Weges dorthin bringen, ich bin auch mitten in dieser Aufgabe. Stellen Sie sicher, dass Sie mindestens Gradle 1.2 haben.
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')
}
Referenz: http://gradle.1045684.n5.nabble.com/State-of-javascript-stuff-in-master-td5709818.html
mit einer Art und Weise bereitgestellt mein Coffee kompilieren kann ich jetzt fügen Sie die npm cmd installieren in eine groovige exec Anfrage und BARF in Abhängigkeit von den exec cmd Ergebnis liefert 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
Ergebnisse in:
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!')
}
}
Wie Was die Mocha-Tests angeht, habe ich keine Ahnung davon, aber ich vermute, dass Sie ähnlich damit umgehen können.
Wenn Sie Andockfenster könnten Sie diese gradle Plugin mögen: https://github.com/dimafeng/containerized-tasks
Die Hauptidee ist Ihre npm Aufgaben in einem Docker Behälter laufen, die weggeworfen werden direkt nach dem Build (aber node_modules zwischengespeichert wird in Ihr Build-Verzeichnis). Sie müssen also npm nicht auf Ihrem hudson/jenkins/whatever-ci installieren und Versionen davon verwalten.
Hier ist ein einfaches Beispiel, wie es aussehen könnte:
plugins {
id "com.dimafeng.containerizedTask" version "0.4.0"
}
npmContainerizedTask {
sourcesDir = 'test-env/gulp'
outputLevel = 'INFO' // ALL, DEBUG
scriptBody = 'npm install\ngulp'
}
Wo, sourcesDir
ist ein Verzeichnis mit Ihren package.json
, scriptBody
den Befehlen, die im Innern des Behälters ausgeführt werden sollen.
Dann führen Sie einfach ./gradlew npmContainerizedTask
- 1. Wie können Abhängigkeiten in das Setup- und Bereitstellungsprojekt integriert werden?
- 2. Wie können EventMachine & Rails integriert werden?
- 3. Wie können Storyboards in ein cocos2d 2.0-Projekt integriert werden?
- 4. Wie sollten Fehlerverfolgung und Hilfetickets integriert werden?
- 5. Wie integriert man NCover und MSTest 10.0?
- 6. Können SWFs in eine Java-Anwendung integriert werden?
- 7. Wie können Controller und Ansichten von einem externen Projekt in MVC6 integriert werden?
- 8. Wie können AdMob-Anzeigen in ein Cordova-Projekt für Android und iOS integriert werden?
- 9. Wie kann CodeMirror in KnockoutJS integriert werden?
- 10. Wie kann MoinMoin in Pyramide integriert werden?
- 11. In Hudson oder Jenkins, wie können Sie gelöschte Builds wiederherstellen?
- 12. Wie können Abhängigkeiten mit Gradle zu verschiedenen Orten exportiert werden?
- 13. warum können Angebote in Namen von gradle Aufgaben weggelassen werden
- 14. Kann JaVers in Hibernate integriert werden?
- 15. Wie können die App.config-Informationen in eine Referenzdatei in .NET integriert werden?
- 16. Wie kann Autofac mit WepApi 2 und Owin integriert werden?
- 17. Wie werden Fluidsimulationen in Rigid Body Phisix-Motoren integriert?
- 18. Wie kann SharpArchitecture und NHibernate.Search über Fluent.NHibernate.Search integriert werden?
- 19. Wie mehrere Hudson Jobs mit demselben Namen laufen lassen können
- 20. Wie kann Delphi in Active Directory integriert werden?
- 21. Wie können Hilfedateien für Komponenten in das Delphi-System integriert werden?
- 22. Wie kann NPI Lookup integriert werden?
- 23. Wie können nicht-generische Klassen in eine generische Hierarchie integriert werden?
- 24. Wie können Abhängigkeiten in das Docker-Image von .NET Core integriert werden?
- 25. Kann Doxygen in Netbeans C++ integriert werden?
- 26. Wie Jobs in Hudson in einer vordefinierten Reihenfolge ausgeführt werden?
- 27. Arbeitsbereich in Hudson kann nicht gelöscht werden
- 28. Gradle Einstellungen können nicht Fehler
- 29. Kann Dropwizard Metrics in Scalatra integriert werden?
- 30. Wie kann GraphView in mein Projekt integriert werden?