delivery configuration hudson

configuration - delivery - jenkins continuous testing



Configure o cree trabajo hudson automáticamente (7)

Puede probar la API remota de Hudson para este tipo de tarea ( configuración de un proyecto Hudson ).

Vea este tutorial, por ejemplo, y recuerde que puede mostrar la ayuda con bastante facilidad:

java -jar hudson-cli.jar -s http://your_Hudson_server/ help

Entonces, para copiar un trabajo:

java -jar hudson-cli.jar -s http://your_Hudson_server/ copy-job myjob copy-myjob

¿Hay alguna forma de crear un nuevo trabajo en Hudson por un trabajo más de Hudson basado en un trabajo anterior?

Por ejemplo, si necesito crear nuevos grupos de trabajos uno por uno, crear automáticamente 4 trabajos con una configuración similar con parámetros diferentes

Básicamente pasos como este

  1. crear una rama SVN Puedo llamar al comando svn cp y hacerlo parametrizado usando script
  2. Crear una compilación basada en el nuevo nombre svnbranch
  3. Más tarde lo etiqueta

O en otras palabras, necesito clonar el trabajo anterior y dar el nuevo nombre de la sucursal donde $ $ Branch entre en un nuevo trabajo.

Gracias


Tiene la opción que VonC acaba de darle (que es probablemente la forma más segura, pero también puede ir por una ruta diferente simplemente creando un nuevo directorio en {Hudson_Home} / jobs (el nombre del directorio será el nombre del trabajo) y copie una modificación config.xml allí. La modificación básicamente será la URL SVN. Debería verificar el xml del trabajo que está copiando. Debe averiguar cómo se cambia el archivo xml mediante script, pero este es un problema secundario .

Desafortunadamente, debe reiniciar Hudson o forzar una recarga de la configuración. (visite la página http: //: / reload para volver a cargar la configuración).


En caso de que esté dispuesto a usar GIT (como yo, reflejando el repositorio principal de SVN, en el servidor de Hudson / Jenkins, y funciona muy bien) ... podría probar el programa de post-recepción-hudson de Stephen Haberman:

Este enganche crea nuevos trabajos para cada rama en la herramienta de integración continua de Hudson. Además de crear el trabajo si es necesario, el usuario que lo empujó se agrega a la lista de correo electrónico del trabajo si aún no estaban allí.

En cualquier caso, esa secuencia de comandos puede darle nuevos consejos sobre cómo controlar a distancia Jenkins (Hudson).


Podría usar un script de sistema groovy como este:

def jenkins = hudson.model.Hudson.instance def template = jenkins.getItem("MyTemplate") def job = jenkins.copy(template,"MyNewJob") job.scm = new hudson.scm.SubversionSCM("http://base/branches/mybranche") job.save()


Parece que hay un complemento para Jenkins.

https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin

Todavía no he probado el complemento. Pero si el complemento funciona, debería aliviar algunos de los errores humanos al copiar directamente un trabajo y modificar variables / valores.


Ya está cubierto en las otras respuestas, pero para una forma fácil de copiar el config.xml en:

curl --user USER:PASS -H "Content-Type: text/xml" -s --data-binary "@config.xml" "http://hudsonserver:8080/createItem?name=newjobname"


def jenkins = hudson.model.Hudson.instance def template = jenkins.getItem("MyTemplate") def job = jenkins.copy(template,"MyNewJob") job.save()

Lo usé ahora, tengo que cambiar los valores de los parámetros de MyNewJob usando Groovy, ¿cómo lo haré?

ex Tengo un parámetro llamado "Build_BranchName" y el valor predeterminado es // forzar / mybranch Tengo que cambiarlo a // forzado / mynewbranch