nodos integracion instalar ejemplo ejecuciones disparadores despliegue continuo continua configuracion con groovy hudson jenkins hudson-plugins jenkins-plugins

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 de LEVEL_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.