Jenkins: trigger other job after completing a maven release

0

I have a maven job configured, with the m2release plugin. It does the job perfectly, which is:

  • building my application
  • building a release version
  • publishing it to artifactory

That's great.

Now, I want that, anytime I release something, a second job is triggered, which would deploy my artifact to a server.

I can't find a way to do that.

I tried to write a Groovy script, but I can't identify in it that I am running a release run.

PS: I found out how to trigger a script in groovy here: https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin.

jehon

Posted 2017-01-31T09:25:37.447

Reputation: 191

Answers

0

I finally ended up parsing the log for the version number in the output log:

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

jehon

Posted 2017-01-31T09:25:37.447

Reputation: 191