GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Biblioteca compartida de Jenkins:cómo crear, configurar y usar

Introducción

Jenkins es un servidor de automatización de código abierto para desarrolladores de software. Permite a los usuarios crear y administrar elementos repetibles que hacen que el desarrollo y la implementación de software sean más sencillos y eficientes. Uno de estos elementos son las bibliotecas compartidas de Jenkins.

En este tutorial, definiremos qué son las bibliotecas compartidas de Jenkins y explicaremos cómo puede crearlas, administrarlas y usarlas en el desarrollo de software.

Requisitos previos

  • Una copia de Jenkins instalada y lista para usar (aprende a instalar Jenkins en Windows 10, Ubuntu 18.04, Debian 10, CentOS 8 o instala Jenkins en un clúster de Kubernetes)
  • Acceso a un navegador web

¿Qué es una biblioteca compartida en Jenkins?

Una biblioteca compartida en Jenkins es una colección de scripts de Groovy compartidos entre diferentes trabajos de Jenkins. Para ejecutar los scripts, se introducen en un archivo Jenkins.

Cada biblioteca compartida requiere que los usuarios definan un nombre y un método para recuperar el código fuente. Estos métodos incluyen archivos locales, repositorios de Git y complementos de Jenkins SCM. Opcionalmente, los usuarios también pueden establecer una versión de biblioteca predeterminada.

¿Por qué usar una biblioteca compartida de Jenkins?

Los desarrolladores usan bibliotecas compartidas para evitar escribir el mismo código desde cero para varios proyectos. Las bibliotecas compartidas comparten código entre proyectos de desarrollo, optimizando así el ciclo de vida del desarrollo de software. Esto reduce drásticamente el tiempo dedicado a la codificación y ayuda a evitar el código duplicado.

La creación de una biblioteca compartida también simplifica el proceso de enviar actualizaciones de código fuente para un proyecto. Actualizar el código fuente de la biblioteca también actualiza el código de cada proyecto que usa la biblioteca.

¿Cómo crear una biblioteca compartida en Jenkins?

La creación de una biblioteca compartida en Jenkins implica los siguientes pasos.

Paso 1:crea un guión maravilloso

Primero, cree un script Groovy usando el código que desea guardar en la biblioteca.

Por ejemplo, el siguiente script de Groovy crea una función de saludo que imprime Hello y un name definido por el usuario parámetro como salida:

#!/usr/bin/env groovy

def call(String name = 'human') {
  echo "Hello, ${name}."
}

Paso 2:agregue el script a un repositorio de Git

Cree un nuevo repositorio de Git que contenga un directorio llamado vars . Guarde el script en vars directorio como sayHello.groovy .

Paso 3:agregue una biblioteca compartida en Jenkins

1. Abra el panel de control de Jenkins en su navegador web.

2. Haga clic en Administrar Jenkins enlace en el lado izquierdo del tablero de Jenkins.

3. En Configuración del sistema , haga clic en Configurar sistema botón.

4. Desplácese hacia abajo hasta las Bibliotecas de canalizaciones globales. y haga clic en Agregar botón.

5. Se abre un nuevo cuadro de diálogo que le pide que configure los detalles de la biblioteca, como el nombre y el método SCM. Complete los detalles para configurar la biblioteca:

  • Nombre: El nombre de la nueva biblioteca compartida.
  • Versión predeterminada: Establezca una versión predeterminada para la nueva Biblioteca compartida. Según el SCM, puede ser un nombre de rama, una etiqueta, un hash de confirmación, etc.
  • Cargar implícitamente: Marcar esta opción permite que los scripts accedan automáticamente a la biblioteca sin necesidad de solicitarla.
  • Permitir que se anule la versión predeterminada: Marcar esta opción permite que los scripts seleccionen una versión personalizada de la biblioteca.
  • Incluya los cambios de @Library en los cambios recientes del trabajo: Marcar esta opción hace que los cambios en la biblioteca afecten a todas las compilaciones que usan la biblioteca.
  • Almacenar en caché las versiones recuperadas en el maestro para una recuperación rápida: Al marcar esta opción, Jenkins almacena en caché las versiones recuperadas de esta biblioteca en el maestro.
  • Método de recuperación: Elija Modern SCM (cuando use complementos Jenkins SCM) o Legacy SCM (cuando use métodos SCM no integrados con Jenkins) en el menú desplegable. Seleccionar Modern SCM le permite elegir un complemento de SCM y configurar opciones relevantes.
  • Ruta de la biblioteca (opcional): Le permite establecer una ruta relativa desde la raíz de SCM a la raíz del directorio de la biblioteca.

6. Una vez que haya terminado de configurar la nueva biblioteca, haga clic en Guardar botón para guardar los cambios en Jenkins.

Paso 4:use una biblioteca compartida en una canalización de Jenkins

Después de agregar la biblioteca compartida desde el repositorio de Git a Jenkins, puede consultarla en los scripts de canalización.

1. Cree un nuevo elemento de canalización en Jenkins. Escriba el nombre del elemento y seleccione Pipeline como el tipo de proyecto. Haga clic en Aceptar una vez hecho.

2. Agregue un script simple que cargue la biblioteca compartida. Usamos a Alex como el name parámetro:

@Library('pipeline-library-demo')_

 stage('Demo') {
     echo 'Hello world'
     sayHello 'Alex'
 }

3. Haga clic en Guardar para guardar los cambios en la canalización.

4. La creación de la canalización y la comprobación de la salida de la consola revelan que la biblioteca compartida se carga e interactúa correctamente con la entrada del usuario:

Cómo cargar una biblioteca compartida en una canalización

Si una biblioteca compartida no se carga implícitamente, Jenkins ofrece varias formas de consultarla mediante el script Groovy.

Agregue la siguiente anotación en la parte superior del código de Jenkins para hacer referencia manualmente a un script:

@Library('[library name]')_

Agregue el signo de arroba (@ ) y el nombre de la versión para cargar una versión específica de la biblioteca:

@Library('[library name]@[library version]')_

Si desea cargar varias bibliotecas al mismo tiempo, separe los nombres con un símbolo de coma (, ) y un espacio en blanco:

@Library(['[library name 1]', '[library name 2]'])_

Otra opción es cargar bibliotecas compartidas dinámicamente. Puede colocar este tipo de anotación en cualquier parte del script:

library '[library name]'

También es posible cargar dinámicamente una biblioteca de terceros que no está incluida en las Bibliotecas de canalización global de Jenkins. ajustes. Por ejemplo, cargar una biblioteca desde Git requiere que proporcione el nombre de la biblioteca, una etiqueta de clase de Jenkins, la URL de Git de la biblioteca y credenciales válidas para acceder a la biblioteca.

library identifier: '[library name]@[library version]', retriever: modernSCM(
  [$class: 'GitSCMSource',
   remote: '[library Git URL]',
   credentialsId: '[Git credentials]'])

Otro método es vincular directamente a un repositorio de Git que contiene una biblioteca. Al configurar una tubería, desplácese hacia abajo hasta Pipeline y seleccione el secuencia de comandos Pipeline de SCM opción de la Definición menú desplegable.

Una vez que seleccione el Git opción del SCM menú desplegable, agregue la URL del repositorio, las credenciales y la ID de la sucursal y haga clic en Guardar para confirmar.


Ubuntu
  1. Ansible Playbook:Cómo crear y configurar Playbooks

  2. Secretos de Kubernetes:cómo crear, utilizar y acceder a secretos

  3. Volúmenes NFS Docker:Cómo crear y usar

  4. Cómo crear y usar subdominios

  5. Introducción a las bibliotecas compartidas de Linux (Cómo crear bibliotecas compartidas)

Cómo crear y usar un archivo de intercambio en Linux

Cómo instalar y usar Jenkins en Ubuntu 18.04 y 16.04 LTS

Cómo instalar y configurar Jenkins en CentOS 8 / RHEL 8

Cómo instalar y configurar Jenkins en Ubuntu

Cómo instalar y configurar Jenkins en Ubuntu 20.04

Cómo configurar y usar Network Bridge en Ubuntu Linux