En un mundo ideal, nuestros empleados menos expertos en tecnología podrían usar un comando Slack para ejecutar un trabajo y obtener los resultados de nuevo, negando el uso de la GUI de Jenkins. Encontré Iniciar una compilación en Jenkins usando un comando Slack en GitHub, pero tiene algunas limitaciones, incluido el hecho de que parece requerir una instancia de Heroku de relación 1: 1 para el trabajo de Jenkins, lo que no es excelente para nuestros propósitos.
Mi pensamiento es hacer que la gente use un comando singular como /jenkins
, y use parámetros después de eso que serán analizados por un trabajo y utilizados para iniciar otros más adelante. Eso nos mantiene a un comando flojo / una instancia, pero aún nos da toda la flexibilidad que necesitamos.
El problema recae en llevar los parámetros a Jenkins. Me estoy imaginando algo como el siguiente flujo de trabajo;
Tipos de usuario
/Jenkins job2 param1 param2
en Slack. Esto está llamando a un trabajo general que analizará los parámetros para averiguar qué ejecutar.El comando de alguna manera se envía al trabajo de jenkins paraguas. Heroku instancia, integración directa, w / e.
El trabajo paraguas se recibe
job2 param1 param2
como una cadena. (Tal vez como el valor de un solo parámetro, tal vez dividido previamente en múltiples campos)El trabajo de paraguas divide la cadena si aún no se ha hecho, y se da cuenta de que el usuario desea
job2
ejecutar, usando parámetrosparam1
yparam2
.El trabajo de paraguas realiza un trabajo de compilación para ejecutar el trabajo posterior como se llama, lo que retrasará al usuario sus resultados.
Son los pasos 2-3 los que me están haciendo tropezar. ¿Cómo puedo pasar una cadena (con espacios) de Slack a mi trabajo de Jenkins?
Si toda mi premisa está equivocada, también estoy abierto a que se cuestione mi marco.