Biblioteca compartida de Jenkins: una mirada más cercana [2022]
Publicado: 2021-01-02Vivimos en una era de microservicios en la que las aplicaciones contemporáneas se desmontan en componentes que se pueden implementar individualmente . Podemos argumentar que Jenkins se ha hecho un lugar entre las principales herramientas originales de CI/CD para implementar microservicios. En comparación con las aplicaciones monolíticas, existen muchas canalizaciones para implementar microservicios individuales.
Puede utilizar la manguera como código para codificar todo el proceso de CI/CD. Trátelo como en el desarrollo de aplicaciones. Puede publicar su código de canalización y ejecutar todos los niveles de prueba antes de usarlo para implementar su aplicación.
Tabla de contenido
¿Qué es la biblioteca compartida de Jenkins?
Cuando decimos CI/CD como símbolo, necesitamos modularidad y reutilización. Tienes que seguir el principio DRY. Ahí es donde la biblioteca compartida de Jenkins resulta útil.
La biblioteca compartida de Jenkins es la idea de incluir un código de tubería estándar para los sistemas de control de versiones y se puede usar en cualquier número de tuberías simplemente refiriéndose a él. Varios equipos pueden usar el mismo directorio para su canalización.
Puede compararlo con directorios de programación populares. La programación crea una guía separada que cualquiera puede usar al importar código.
Por ejemplo, si tiene diez conductos para microservicios de Java, el procedimiento de creación anterior se repite para los diez conductos. Además, el código de tubería se copia y pega con la adición de nuevos servicios. Si desea cambiar algunos parámetros en una fase de construcción antigua, debe ajustarlos manualmente en todas las tuberías.

En el mismo escenario, creará una biblioteca compartida para edificios más antiguos. Para todas las tuberías, todo lo que tiene que hacer es consultar la antigua biblioteca de códigos de construcción. Si hay cambios antiguos en el futuro, todo lo que necesita actualizar es el ícono de la biblioteca compartida.
Leer: Interesantes ideas y temas del proyecto Jenkins
Empezar a usar bibliotecas compartidas
Un directorio compartido es una colección de archivos geniales (DSL + Groovy). Todos los archivos geniales deben estar en el repositorio de git. Este ejemplo usa Github como un repositorio de git. https://github.com/devopscube/jenkins-shared-library. Puede duplicar este repositorio para obtener la infraestructura de la biblioteca compartida.
La base de datos de la biblioteca compartida contiene las siguientes estructuras de volumen:
La biblioteca conjunta de Jenkins
| ____ vars
| ____ origen
| ____ recursos
Vars
Contiene todo el código WCL al que puede llamar desde la canalización. Contiene todos los archivos de directorio con extensión .groovy. Los archivos .txt también son compatibles para documentar el código de la biblioteca que se comparte. Por ejemplo, si tiene un archivo con el nombre maven-build. Groovy, obtendrá un archivo de ayuda con el nombre maven-groovy.txt. Puede escribir documentación de ayuda para marcar las propiedades de un directorio compartido en este archivo. Los archivos de ayuda se pueden ver desde la página <your-jenkins-url> / Pipeline Syntax / Global.
origen
Es un directorio fuente estándar de Java. Una vez que se haya compilado todo el texto, se agregará al classpath. Aquí puede agregar un código increíblemente genial para expandir el código de la biblioteca compartida. También puede usar el Manifiesto de importación para importar categorías y extensiones existentes de Jenkins.
Hay escenarios en los que el hardware DSL no es lo suficientemente flexible para realizar ciertas funciones. En este caso, puede escribir funciones de ritmo personalizadas en src y leerlas en el código de la biblioteca compartida.
Recursos
Puede administrar todos los archivos innecesarios necesarios para la manguera en esta carpeta. Por ejemplo, es posible que necesite una plantilla JSON general para realizar llamadas a la API durante la construcción. Puede guardar esta plantilla JSON en una carpeta de recursos y llamarla en una biblioteca compartida a través de la función LibraryResource.

Debe leer: Salario de Jenkins en India
Biblioteca global compartida
Hay varios lugares donde puede configurar un directorio compartido, según su caso de uso. Administración de Jenkins » Configuración del sistema » Biblioteca global de tuberías. Puede configurar cualquier número de directorios que necesite.
Estas bibliotecas están disponibles universalmente para que cada tubería en su sistema pueda usar las funciones implementadas en estas bibliotecas.
Estas bibliotecas se consideran "confiables". Puede realizar cualquier método en Java, Groovy, la API interna de Jenkins, la extensión de Jenkins o un directorio de terceros. Le permite identificar con precisión las bibliotecas que doblan las API inseguras en sobres de alto nivel que se pueden usar de manera segura desde cualquier canalización.
Tenga en cuenta que cualquiera que pueda pagar la comisión a esta base de datos SCM tiene acceso ilimitado a Jenkins. Necesita el permiso Total/RunScripts para crear estos directorios (este permiso generalmente se otorga a los administradores de Jenkins).
Inscríbase en cursos de ingeniería de software de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.
Biblioteca compartida a nivel de carpeta
Todas las carpetas creadas se pueden vincular a directorios compartidos. Este mecanismo le permite establecer un rango de directorio específico para todas las tuberías dentro de un volumen o subcarpeta.
Los directorios basados en carpetas no se consideran "de confianza". Funciona en la caja de arena de la ranura, como una tubería normal.
Biblioteca compartida automática
Otros complementos pueden agregar una forma de identificar la biblioteca sobre la marcha. Por ejemplo, "Carpeta de organización de GitHub" es un complemento de origen que se proporciona en el origen de la sucursal de GitHub. Proporciona un componente que permite que las secuencias de comandos utilicen bibliotecas que no son de confianza, como github.com/orgname/reponame, sin ninguna configuración adicional. En este caso, el repositorio de GitHub especificado se cargará desde la rama principal usando configuraciones anónimas.
Para comprobar si hay cambios en la biblioteca
Si observa un error en una compilación con un directorio que no es de confianza, haga clic en el enlace de reproducción y edite uno o más archivos de origen para ver si la versión resultante funciona como se esperaba. Cuando esté satisfecho con los resultados, haga clic en el enlace de diferencia en la página Estado de la versión y aplique la diferencia a su biblioteca y su grupo de compromiso.

(Incluso si la versión solicitada de la biblioteca es una rama y no una versión estática como el marcador, la versión reactivada usará la misma versión que la versión original. No puede recuperar los recursos de la biblioteca).
Actualmente, no le proporciona las bibliotecas de confianza Replay. Actualmente no se admite el cambio de archivos de recursos durante la reproducción.
Lea también: Preguntas y respuestas de la entrevista de Jenkins
Conclusión
Estas son algunas de las cosas importantes que debe recordar:
- Tendrá que usar Groovy para escribir pasos o funciones personalizadas.
- Existe la necesidad de escribir pasos de canalización a los que pueda llamar desde canalizaciones.
- Debe crear un archivo en el directorio vars del repositorio que contendrá el nombre de su paso personalizado.
- El método de llamada def debe implementarse mediante los parámetros de su paso.
- Si es necesario escribir código Groovy común, puede agregarlo a src.
- También puede integrar una biblioteca compartida en Jenkins mediante el uso de una pantalla de configuración del sistema.
Si está interesado en obtener más información sobre el desarrollo de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos y asignaciones. , estado de exalumno de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.
