Jenkins: Löse einen anderen Job, nachdem eine Maven-Freigabe abgeschlossen wurde

623
jehon

Ich habe einen Maven-Job mit dem Plugin m2release konfiguriert. Es macht die Arbeit perfekt, und zwar:

  • Meine Bewerbung erstellen
  • Aufbau einer Release-Version
  • Veröffentlichung auf artifactory

Das ist großartig.

Nun, ich möchte das, wenn ich etwas freigebe, wird ein zweiter Job ausgelöst, der mein Artefakt auf einem Server bereitstellen würde.

Ich kann keinen Weg finden, das zu tun.

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

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

0

1 Antwort auf die Frage

0
jehon

Schließlich habe ich das Protokoll nach der Versionsnummer im Ausgabeprotokoll analysiert:

// 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 }