Tenho um trabalho maven configurado, com o plugin m2release. Ele faz o trabalho perfeitamente, que é:
- construindo meu aplicativo
- construindo uma versão de lançamento
- publicando-o no artefato
Isso é ótimo.
Agora, quero que, sempre que eu liberar algo, seja acionado um segundo job, que implantaria meu artefato em um servidor.
Não consigo encontrar uma maneira de fazer isso.
Tentei escrever um script Groovy, mas não consigo identificar nele que estou executando uma execução de lançamento.
PS: descobri como acionar um script no groovy aqui:https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin.
Responder1
Finalmente acabei analisando o log para o número da versão no log de saída:
// 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
}