travis - ¿Llamar a una compilación de Jenkins desde fuera de Jenkins?
jenkins tutorial (9)
Soy nuevo en Jenkins, y no estoy seguro si esto es posible, pero me gustaría configurar una interfaz web donde alguien pueda hacer clic en "Iniciar trabajo" y esto le indicará a Jenkins que inicie un trabajo de construcción en particular.
¿Jenkins tiene un servicio web que permitiría tal cosa? Si es así, ¿cuál sería un simple ejemplo?
Ajá, lo encontré en la documentación. Tan sencillo:
http://YOURHOST/jenkins/job/PROJECTNAME/build
Aquí hay un enlace a la documentación: Jenkins Remote Access API .
Consulte la sección Envío de trabajos .
En la configuración de su trabajo, configura un token y luego crea una solicitud POST
para JENKINS_URL/job/JOBNAME/build?token=TOKEN
. Ese es probablemente el uso más básico.
Con curl, si tiene varios argumentos para pasar como un token y un parámetro que quizás deba citar en Linux shell:
curl -H POST "http://USERNAME:PASSWORD@JENKINS_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN&PARAMETER=VALUE"
Hay una buena muestra del uso de la API anterior de Python. El proyecto se llama Python Jenkins , y puede encontrarlo aquí: link
Jenkins también tiene soporte para compilación parametrizada.
Por lo tanto, si desea pasar parámetros para la generación de compilación configurable, puede pasarlos publicándolos al invocar la solicitud de compilación de Jenkins con http: // YOURHOST
/ jenkins / job / PROJECTNAME / buildWithParameters.
Jenkins tiene una API REST documentada. Puede hacer que su pequeño servicio web lo invoque.
Necesitaba agregar parámetros y quería hacerlo a través de https. Me tomó un tiempo pero lo siguiente funcionó para mí:
curl --request POST --url ''https://HOST_NAME/job/JOB_NAME/buildWithParameters?token=TOKEN'' --header ''cache-control: no-cache'' --header ''content-type: application/x-www-form-urlencoded'' --data ''name1=value1&name2=value2''
Utilizar:
http://some server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value
Puede echar un vistazo a esta documentación: Estructura parametrizada
curl -H POST http://USERNAME:PASSWORD@JENKINS_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN
Establezca YOUR_TOKEN
en la configuración del trabajo -> desencadenar compilación -> desencadenar construcciones de forma remota.