У меня настроена работа maven с плагином m2release. Он отлично справляется с работой, а именно:
- создание моего приложения
- создание релизной версии
- публикация его в artifactory
Замечательно.
Теперь я хочу, чтобы всякий раз, когда я что-то выпускаю, запускалось второе задание, которое бы развертывало мой артефакт на сервере.
Я не могу найти способ это сделать.
Я попытался написать скрипт Groovy, но не могу определить в нем, что я запускаю релиз.
PS: Я узнал, как запустить скрипт в Groovy, здесь:https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin.
решение1
В конце концов я проанализировал журнал на предмет номера версии в выходном журнале:
// 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
}