Frage

Ich versuche, Hudson zu konfigurieren, so dass ich in der Lage sein wird, um automatisch einen Build bereitstellen (eine .war-Datei) auf Tomcat. Die neu eingesetzte Build wird dann von jemandem benutzt werden, um die Anwendung zu testen.

Ich habe versucht, das Bereitstellen von Plugin mit der WAR-Datei automatisch zu implementieren, und das funktioniert. der Auftrag jedoch, dass die WAR-Datei erstellt wird nach jeder scm Änderung läuft (sofern Code verpflichtet ist). Mit dem Bereitstellen Plugin würde die WAR-Datei ein Build jedes Mal, Tomcat eingesetzt werden wird. Da Code häufig begangen wird, bedeutet dies, dass die Web-Anwendung häufig auch neu gestartet werden, und dies wird den Testprozess zu unterbrechen.

Ich schätze die Tatsache, dass Hudson läuft meine Komponententests und macht einen Build regelmäßig, so will ich nicht die Auslöser für diesen Job ändern.

Ich bin auf der Suche nach einer Möglichkeit, dass ich manuell aus Hudson zu implementieren entscheiden kann. Ich habe versucht, einen separaten Job zu schaffen, die .war aus dem ersten Job bereitstellen werden, aber das hat nicht funktioniert. Hat jemand Erfahrung Einstellung so etwas wie oben dazu?

War es hilfreich?

Lösung

Wie die Artefakte bekommen

Sehen Sie in dem Abschnitt " Wie rückgängig zu machen oder einen vorherigen Build erneut bereitstellen " auf der Deploy Plugin Seite . Es beschreibt die Grundidee. Es nutzt die Copy Artifact Plugin die Artefakte aus dem Build kopieren Job zu Ihrem aktuellen Job (der deploy Job). Von dort können Sie das gleiche tun, dass Sie in Ihren Build Schritt getan hat.

Wie die deploy

auslösen

Der Build-Auftrag kann nicht ausgelöst werden, nachdem Sie die deploy starten, so dass zunächst ein Build laufen und als der deploy Job. So gibt es eine einige Optionen:

  • manuell Trigger die Build. Der Benutzer, der die Bereitstellungsanforderungen startet einen bestimmten Lauf des Build-Job wählen.
  • geplante Stationierung Dieser Teil der nächtlichen Aufgaben sein könnte. Der Auftrag wird in einem bestimmten Intervall (wie jede Nacht oder jedes Wochenende) ausgelöst. Da es automatisiert ist, sollte der deploy Job den letzten erfolgreichen Build abholen (Sie keinen parametrisierte Job brauchen dann). Sie haben keine Chance haben in einer Laufnummer zu übergeben.
  • der deploy Job bekommt ausgelöst jedes Mal ein Build beendet erfolgreich (paßt nicht Ihre Anforderung, aber aufgeführt, die Liste zu vervollständigen)
  • Einige andere (esoterischen) Trigger . Dies kann viele verschieden sein denkt zum Beispiel ausgelöst remote durch die die Build-URL aufrufen. Der Anruf kann von einem Ihrer Ticketing-Systen, Testlabor-Management-System oder ein anderes System, das Sie mögen. Sie können auch den Einsatz auslösen, durch spezifische Änderungen in Ihrem Source-Control-System, wie die Versionsnummer zu ändern (zum Beispiel durch ein Schlüsselwort markiert in der Commit-Nachricht). Dieser Trigger kann innerhalb oder außerhalb des Hudson umgesetzt werden. Es gibt noch andere Auslöser auch zur Verfügung. Dies beinhaltet, ist aber nicht auf HTML-Seite zu ändern, ändern auf einem überwachten Teil des Dateisystems, IM-Nachricht, E-Mail beschränkt. Die ersten drei werden von einem Hudson-Plugin implementiert. Werfen Sie einen Blick auf die Plugin-Liste, um zu wissen, was das alles evailable ist oder In beiden Fällen müssen Sie sicherstellen, dass die Build-Job archiviert alle Artefakte für den Einsatz benötigt werden.

Andere Tipps

Ich habe mehrere hudson Jobs pro Projekte:

  1. Eine Hauptaufgabe, die nur das Projekt erstellt und die Tests ausgeführt wird. Wenn es erfolgreich ist, startet es folgende Aufgaben:
  2. Ein Code-Metriken Job (PMD, FindBugs, Cobertura, Checkstyle, auch JavaDoc Generation) und
  3. Ein deploy Job, baut das Projekt mit mvn package -DskipTests und setzt den Krieg gegen den Kater

Ich finde, dass diese Dinge gemacht Trennung zu erleichtern, werden nur der erste Job Streams für SCM ändert.

Allerdings wäre eine andere Art und Weise sein, die dritte Aufgabe lassen auch auf die SCM hören (aber mit einem längeren Intervall, vielleicht eine Stunde).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top