Konfigurieren von Hudson zum Bereitstellen eines Builds

8

Ich versuche, Hudson so zu konfigurieren, dass ich automatisch einen Build (eine .war-Datei) für Tomcat bereitstellen kann. Das neu bereitgestellte Build wird dann von jemandem zum Testen der Anwendung verwendet.

Ich habe versucht, das Deploy-Plugin zur automatischen Bereitstellung der WAR-Datei zu verwenden, und das funktioniert. Der Job, der die WAR-Datei erstellt, wird jedoch nach jeder SCM-Änderung ausgeführt (wenn Code festgeschrieben wird). Mit dem Deploy-Plugin wird die .war-Datei bei jeder Erstellung eines Builds in Tomcat bereitgestellt. Da der Code häufig verwendet wird, bedeutet dies, dass die Webanwendung ebenfalls häufig neu gestartet wird, wodurch der Testprozess unterbrochen wird.

Ich schätze die Tatsache, dass Hudson meine Unit-Tests ausführt und regelmäßig einen Build erstellt, damit ich die Trigger für diesen Job nicht ändern möchte.

Ich suche nach einer Möglichkeit, die ich manuell in Hudson bereitstellen kann. Ich habe versucht, einen separaten Job zu erstellen, der die WAR-Datei aus dem ersten Job bereitstellt, aber das hat nicht funktioniert. Hat irgendjemand Erfahrung damit, etwas so einzurichten?

    
Daniël Rutten 06.01.2011, 13:41
quelle

2 Antworten

8

So erhalten Sie die Artefakte

Sehen Sie sich im Rollback oder erneute Bereitstellung eines vorherigen Builds an "> Plugin-Seite bereitstellen . Es beschreibt die Grundidee. Es verwendet das Artefakt-Plugin kopieren , um die Artefakte aus dem Build-Job in Ihren aktuellen Job zu kopieren (der Bereitstellungsauftrag) Von dort aus machen Sie dasselbe, was Sie in Ihrem Build-Schritt getan haben.

So lösen Sie die Bereitstellung aus

Der Build-Job kann nicht ausgelöst werden, nachdem Sie die Bereitstellung gestartet haben, sodass zuerst ein Build und dann der Bereitstellungsjob ausgeführt wird. Also ein paar Optionen:

  • manuell auslösen den Build. Der Benutzer, der die Bereitstellung startet, muss eine bestimmte Ausführung des Build-Jobs auswählen.
  • geplante Bereitstellung Dies könnte Teil der nächtlichen Aufgaben sein. Der Job 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 übernehmen (Sie benötigen dann keinen parametrisierten Job). Sie haben keine Chance, eine Laufnummer zu übergeben.
  • Der Deploy-Job wird jedes Mal ausgelöst, wenn ein Build erfolgreich abgeschlossen wurde (entspricht nicht Ihrer Anforderung, wird jedoch aufgelistet, um die Liste zu vervollständigen)
  • Einige andere (esoterische) Trigger . Dies kann viele verschiedene Gedanken, z.B. Ferngesteuert durch Aufruf der Build-URL. Der Anruf kann von einem Ihrer Ticketsysteme, einem Testlabormanagementsystem oder einem anderen von Ihnen gewünschten System erfolgen. Sie können die Bereitstellung auch durch bestimmte Änderungen in Ihrem Quellcodeverwaltungssystem auslösen, z. B. durch Ändern der Versionsnummer (z. B. durch ein Schlüsselwort in der Übergabenachricht gekennzeichnet). Dieser Trigger kann innerhalb oder außerhalb von Hudson implementiert werden. Es sind auch andere Trigger verfügbar. Dies umfasst, ist aber nicht beschränkt auf HTML-Seitenwechsel, Änderungen an einem überwachten Teil des Dateisystems, IM-Nachricht, E-Mail. Die ersten drei sind durch ein Hudson-Plugin implementiert. Schauen Sie sich die Liste an, um zu erfahren, was alles verfügbar ist oder In beiden Fällen müssen Sie sicherstellen, dass der Build-Job alle für die Bereitstellung benötigten Artefakte archiviert.
Peter Schuetze 06.01.2011, 20:21
quelle
1

Ich habe mehrere Hudson Jobs pro Projekte:

  1. Eine Hauptaufgabe, die nur das Projekt erstellt und die Tests ausführt. Wenn es erfolgreich ist, startet es die folgenden Jobs:
  2. Ein Code-Metrik-Job (PMD, FindBugs, Cobertura, CheckStyle, auch JavaDoc-Generierung) und
  3. Ein Deploy-Job, der das Projekt mit mvn package -DskipTests erstellt und den War on Tomcat
  4. implementiert

Ich finde, dass die Trennung einfacher war, nur der erste Job wartet auf SCM-Änderungen.

Es wäre aber auch möglich, dass der 3. Job auch den SCM hört (aber mit einem längeren Intervall, vielleicht einer Stunde).

    
Sean Patrick Floyd 06.01.2011 14:05
quelle