online delivery jenkins hudson jenkins-plugins hudson-plugins

jenkins - delivery - ¿Cómo pasar ${CHANGES} al trabajo downstream?



jenkins online (2)

Tengo un trabajo upstream que sondea a SVN por cambios. Si se detectan cambios, la compilación se inicia. Después de la compilación, el proyecto ascendente llama a un proyecto en sentido descendente para ejecutar la prueba. Estoy usando "Trigger Parameterized Build".

Quiero que el proyecto de downstream pueda enviar un correo electrónico con los resultados de las pruebas y los cambios de SVN que causan la compilación / prueba. Pero el problema es que si uso la variable $ {CHANGES} en sentido descendente, parece estar vacía.

¿Cómo puedo pasar $ {CHANGES} del proyecto original al proyecto downstream?


Puede obtener el conjunto de cambios o los valores que necesita con la secuencia de comandos groovy:

def jenkins = Jenkins.getInstance() def job = jenkins.getItem(jobName) def bld = job.getBuildByNumber(buildNumber) def changeSet = bld.getChangeSet()

luego depende de qué plugin de scm uses, por ejemplo, con git-plugin puedes:

obtener la revisión de cada cambio:

changeSet.each{ println it.getRevision() }

recibe un mensaje para cada cambio:

changeSet.each{ println it.getMsg() }

obtener caminos afectados:

changeSet.each{ println it.getAffectedPaths() }

obtener el nombre del autor:

changeSet.each{ println it.getAuthorName() }

y muchas más acciones