Jenkins: nach Abschluss einer Maven-Version einen anderen Job auslösen

Jenkins: nach Abschluss einer Maven-Version einen anderen Job auslösen

Ich habe einen Maven-Job mit dem Plugin m2release konfiguriert. Er erledigt die Aufgabe perfekt, und zwar:

  • Erstellen meiner Anwendung
  • Erstellen einer Release-Version
  • Veröffentlichung auf Artefaktory

Das ist großartig.

Jetzt möchte ich, dass jedes Mal, wenn ich etwas freigebe, ein zweiter Job ausgelöst wird, der mein Artefakt auf einem Server bereitstellt.

Ich finde keine Möglichkeit, das zu tun.

Ich habe versucht, ein Groovy-Skript zu schreiben, kann darin jedoch nicht erkennen, dass ich einen Release-Lauf ausführe.

PS: Wie man in Groovy ein Skript auslöst, habe ich hier herausgefunden:https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin.

Antwort1

Schließlich habe ich das Protokoll analysiert, um die Versionsnummer im Ausgabeprotokoll zu finden:

// Initialize some stuff
def build = Thread.currentThread().executable
def log = manager.build.logFile.text

// We are looking for maven parameter -DreleaseVersion=1.1.1 (space at the end)
def versionFinder = log =~ /-DreleaseVersion=([0-9]+\.[0-9]+\.[0-9]+) /

def RELEASE_VERSION=""
if (versionFinder.size() > 0) {
  RELEASE_VERSION=versionFinder.getAt(0)[1];
}

if (RELEASE_VERSION > "") {
  manager.listener.logger.println("Release version: " + RELEASE_VERSION);
  // Continue with release script
  // For example, here: // https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin
}

verwandte Informationen