wake-up-neo.com

Führen Sie das Shell-Skript nach dem Postbuild in Jenkins aus

Ich versuche, ein Shell-Skript auszuführen, wenn der Build nach dem Postbuild in Jenkins bestanden wird oder fehlschlägt. Ich kann diese Option im Postbuild nicht sehen, um ein Shell-Skript auszuführen, außer um ein Ziel auszuführen.

75
kforkarim

Sehr einfach mit Post Build Task Plugin.

Jenkins - "Post build task" option

63

Sie können auch beliebige Befehle mit dem Befehl Groovy Post Build - ausführen. Dadurch haben Sie viel Kontrolle darüber, wann sie ausgeführt werden und so weiter. Wir benutzen das, um ein 'Schuldfinger'-Shell-Skript für den Fall fehlgeschlagener oder instabiler Builds auszuführen.

if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) {
  item = hudson.model.Hudson.instance.getItem("PROJECTNAMEHERE")
  lastStableBuild = item.getLastStableBuild()
  lastStableDate = lastStableBuild.getTime()
  formattedLastStableDate = lastStableDate.format("MM/dd/yyyy h:mm:ss a")
  now = new Date()
  formattedNow = now.format("MM/dd/yyyy h:mm:ss a")
  command = ['/appframe/jenkins/appframework/fob.ksh', "${formattedLastStableDate}", "${formattedNow}"]
  manager.listener.logger.println "FOB Command: ${command}"
  manager.listener.logger.println command.execute().text
}

(Unser Befehl verwendet das Datum der letzten stabilen Erstellung und die aktuelle Uhrzeit als Parameter, damit untersucht werden kann, wer die Erstellung möglicherweise abgebrochen hat. Sie können jedoch beliebige Befehle auf ähnliche Weise ausführen.)

9
crovers

Wenn ich Ihre Frage richtig lese, möchten Sie ein Skript in den Postbuild-Aktionen des Builds ausführen.

Ich selbst benutze PostBuildScript Plugin um git clean -fxd nachdem der Build Artefakte archiviert und Testergebnisse veröffentlicht hat. Meine Jenkins-Slaves haben SSD-Festplatten, sodass ich die generierten Dateien nicht im Arbeitsbereich behalten kann.

5
sti

Das sollte mit dem Batch Task Plugin möglich sein.

  1. Erstellen Sie eine Stapelaufgabe im Projekt.
  2. Fügen Sie eine Nacherstellungsoption zum Aufrufen von Batch-Tasks hinzu, die dasselbe Projekt auswählt.

Eine Alternative kann auch Post Build Task Plugin sein.

3
Carlo Bonamico

Sie müssten das Postbuild-Shell-Skript als separaten Jenkins-Job einrichten und als Postbuild-Schritt auslösen. Es sieht so aus, als müssten Sie das Parametrisiertes Trigger-Plugin verwenden, da die Standardoption "Andere Projekte erstellen" nur funktioniert, wenn Ihr Trigger-Build erfolgreich ist.

1
gareth_bowles