groovy - integracion - ¿Cómo hacer un trabajo en Jenkins/Hudson para vigilar otros trabajos y decidir si se construye o no?
manual configuracion jenkins (1)
Aquí hay algunos consejos y fragmentos de código:
- Hay una consola de Groovy Script en
http://<jenkins-server>/script
que lo ayudará a depurar sus scripts. - Aquí hay un enlace a Jenkins Java API .
Fragmento de código que genera todos los nombres de trabajo:
def hi = hudson.model.Hudson.instance hi.getItems(hudson.model.Project).each {project -> println(project.displayName) }
Fragmento de código que extrae
n
deLEVEL_n
(implementado como cierre):def level = { name -> def ret = 0 name.eachMatch(~''LEVEL_([1-9]+[0-9*])'', {ret = it[1].toInteger()}) return ret }
Fragmento de código que obtiene estados para todas las últimas compilaciones:
def hi = hudson.model.Hudson.instance hi.getItems(hudson.model.Project).each {project -> println(project.lastBuild.result) }
Enlace al método que inicia una compilación .
Nota: las cosas se ponen un poco más peludas si está utilizando compilaciones de Matrix. Pero mientras no lo haga, esto debería ser suficiente.
PROBLEMA
Dado que todos los trabajos tienen la cadena LEVEL_X
en su nombre de trabajo, donde X es un número> 1. Quiero que cada trabajo con X = n supervise cada trabajo con X = n-1
, y empiece a construir si cada uno de ellos ha terminado con éxito. Y quiero el trabajo con X = n
para vigilar los otros trabajos con un intervalo de 1 minuto.
Antes que nada, estoy interesado en saber cuál es la mejor manera de hacerlo, en segundo lugar, quiero la solución si se puede implementar mediante un pequeño script, tal vez un script maravilloso que se pueda ejecutar en un system groovy script
usando el GROUPY PLUGIN.