Título del proyecto: Versátil Jenkins CLI
Introducción:
Jenkins es un servidor de automatización de código abierto autónomo que se puede utilizar para automatizar todo tipo de tareas relacionadas con la creación, prueba y entrega o implementación de software.
El objetivo de este artículo es crear una CLI fácil de usar sin dependencias externas para implementar las funciones básicas de Jenkins. Utiliza el estilo de comandos de Linux para operar las siguientes características.
- Guardar el archivo de configuración
- Listado de todos los trabajos para una credencial en particular
- Creación de un trabajo en particular (tanto parametrizado como sin parametrizar)
- Historial de compilación para un trabajo en particular
- Mostrar la consola de salida para un trabajo en particular y un número de compilación específico.
Diagrama:
Herramientas utilizadas:
- Software Jenkins
- Pylint para mejorar el rendimiento y la documentación de Python Script
- API HTTP de Jenkins
- Casos de prueba unitarios: Para comprobar los casos de esquina y la versatilidad de una función en particular.
- Comando Curl: para verificar la corrección y validez de una API en particular
API para las siguientes funciones:
- Guardando el archivo de configuración:
Jenkins-URL + “/trabajo/” + JOBName + “/config.xml”
- Listado de trabajos:
Jenkins-URL+ “/api/json?tree=trabajos[nombre]”
- Construyendo un trabajo:
- Trabajo sin parametrizar:
Jenkins-URL + “/trabajo/” + JOBName + “/construir”
- Trabajo parametrizado:
Jenkins-URL + “/trabajo/” + JOBName + “/buildWithParameters?” + valor de parámetro
- Trabajo sin parametrizar:
- Historial de compilación:
Jenkins-URL + “/trabajo/” + JOBName + “/api/json?tree=allBuilds[*]”
- Visualización de la consola de salida para un trabajo en particular:
Jenkins-URL + “/job/” + JOBName + “/” + BuildNumber + “/logText/progressiveText?start=0”
Aplicación:
este proyecto se puede usar en cualquier lugar, es decir, tanto en el sistema operativo Windows como en Linux, ya que el script de python no tiene ningún tipo de dependencia externa. Es una interfaz fácil de usar, ya que con solo usar ciertos comandos apropiados podemos acceder a todos los detalles de un trabajo en particular sin usar el software Jenkins.
- Enlace del repositorio de Github: https://github.com/viralivora/Jenkins-CLI
- Trabajo de investigación realizado:
- Aprender sobre la API de Jenkins ya que las API no están bien documentadas.
- Pasando por los protocolos HTTP y HTTP RFC
- Comandos de rizo
Artículos relevantes para una mayor comprensión:
Nota: esta idea de proyecto es aportada por Virali Vora para ProGeek Cup 2.0, una competencia de proyectos de GeeksforGeeks.