GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Bibliothèque partagée Jenkins :comment créer, configurer et utiliser

Présentation

Jenkins est un serveur d'automatisation open source pour les développeurs de logiciels. Il permet aux utilisateurs de créer et de gérer des éléments reproductibles qui rendent le développement et le déploiement de logiciels plus simples et plus efficaces. L'un de ces éléments sont les bibliothèques partagées Jenkins.

Dans ce didacticiel, nous définirons ce que sont les bibliothèques partagées Jenkins et expliquerons comment vous pouvez les créer, les gérer et les utiliser dans le développement de logiciels.

Prérequis

  • Une copie de Jenkins installée et prête à l'emploi (découvrez comment installer Jenkins sur Windows 10, Ubuntu 18.04, Debian 10, CentOS 8 ou installer Jenkins sur un cluster Kubernetes)
  • Accès à un navigateur Web

Qu'est-ce qu'une bibliothèque partagée dans Jenkins ?

Une bibliothèque partagée dans Jenkins est une collection de scripts Groovy partagés entre différents travaux Jenkins. Pour exécuter les scripts, ils sont extraits dans un fichier Jenkins.

Chaque bibliothèque partagée demande aux utilisateurs de définir un nom et une méthode de récupération du code source. Ces méthodes incluent les fichiers locaux, les référentiels Git et les plugins Jenkins SCM. En option, les utilisateurs peuvent également définir une version de bibliothèque par défaut.

Pourquoi utiliser une bibliothèque partagée Jenkins ?

Les développeurs utilisent des bibliothèques partagées pour éviter d'écrire le même code à partir de zéro pour plusieurs projets. Les bibliothèques partagées partagent le code entre les projets de développement, optimisant ainsi le cycle de vie du développement logiciel. Cela réduit considérablement le temps consacré au codage et permet d'éviter le code en double.

La création d'une bibliothèque partagée simplifie également le processus de diffusion des mises à jour du code source d'un projet. La mise à jour du code source de la bibliothèque met également à jour le code de chaque projet qui utilise la bibliothèque.

Comment créer une bibliothèque partagée dans Jenkins ?

La création d'une bibliothèque partagée dans Jenkins implique les étapes suivantes.

Étape 1 :Créer un script groovy

Tout d'abord, créez un script Groovy en utilisant le code que vous souhaitez enregistrer dans la bibliothèque.

Par exemple, le script Groovy suivant crée une fonction de salutation qui imprime Hello et un name défini par l'utilisateur paramètre comme sortie :

#!/usr/bin/env groovy

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

Étape 2 :Ajouter le script à un référentiel Git

Créez un nouveau dépôt Git contenant un répertoire nommé vars . Enregistrez le script dans les vars répertoire comme sayHello.groovy .

Étape 3 :Ajouter une bibliothèque partagée dans Jenkins

1. Ouvrez le tableau de bord Jenkins dans votre navigateur Web.

2. Cliquez sur Gérer Jenkins lien sur le côté gauche du tableau de bord Jenkins.

3. Sous Configuration du système , cliquez sur Configurer le système bouton.

4. Faites défiler jusqu'aux bibliothèques mondiales de pipelines section et cliquez sur Ajouter bouton.

5. Une nouvelle boîte de dialogue s'ouvre vous invitant à configurer les détails de la bibliothèque, tels que le nom et la méthode SCM. Remplissez les détails pour configurer la bibliothèque :

  • Nom : Le nom de la nouvelle bibliothèque partagée.
  • Version par défaut : Définissez une version par défaut pour la nouvelle bibliothèque partagée. Selon le SCM, il peut s'agir d'un nom de branche, d'une balise, d'un hash de commit, etc.
  • Charger implicitement : Cocher cette option permet aux scripts d'accéder automatiquement à la bibliothèque sans avoir besoin de la demander.
  • Autoriser le remplacement de la version par défaut : Cocher cette option permet aux scripts de sélectionner une version personnalisée de la bibliothèque.
  • Inclure les modifications @Library dans les modifications récentes de l'emploi : Si vous cochez cette option, les modifications apportées à la bibliothèque affectent toutes les versions qui utilisent la bibliothèque.
  • Cache les versions récupérées sur le maître pour une récupération rapide : En cochant cette option, Jenkins met en cache les versions de cette bibliothèque sur le maître.
  • Méthode de récupération : Choisissez Modern SCM (lors de l'utilisation des plug-ins Jenkins SCM) ou Legacy SCM (lors de l'utilisation de méthodes SCM non intégrées à Jenkins) dans le menu déroulant. La sélection de Modern SCM vous permet de choisir un plug-in SCM et de configurer les options pertinentes.
  • Chemin de la bibliothèque (facultatif) : Vous permet de définir un chemin relatif entre la racine du SCM et la racine du répertoire de la bibliothèque.

6. Une fois que vous avez terminé de configurer la nouvelle bibliothèque, cliquez sur Enregistrer bouton pour enregistrer les modifications dans Jenkins.

Étape 4 :Utiliser une bibliothèque partagée dans un pipeline Jenkins

Après avoir ajouté la bibliothèque partagée du référentiel Git à Jenkins, vous pouvez vous y référer dans vos scripts de pipeline.

1. Créez un nouvel élément de pipeline dans Jenkins. Tapez le nom de l'élément et sélectionnez Pipeline comme type de projet. Cliquez sur OK une fois terminé.

2. Ajoutez un script simple qui charge la bibliothèque partagée. Nous avons utilisé Alex comme name paramètre :

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

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

3. Cliquez sur Enregistrer pour enregistrer les modifications apportées au pipeline.

4. La construction du pipeline et la vérification de la sortie de la console révèlent que la bibliothèque partagée se charge correctement et interagit avec l'entrée utilisateur :

Comment charger une bibliothèque partagée dans un pipeline

Si une bibliothèque partagée ne se charge pas implicitement, Jenkins propose plusieurs façons de s'y référer à l'aide du script Groovy.

Ajoutez l'annotation suivante en haut du code Jenkins pour faire référence manuellement à un script :

@Library('[library name]')_

Ajoutez le signe arobase (@ ) et le nom de la version pour charger une version spécifique de la bibliothèque :

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

Si vous souhaitez charger plusieurs bibliothèques en même temps, séparez les noms par une virgule (, ) et un espace vide :

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

Une autre option consiste à charger dynamiquement les bibliothèques partagées. Vous pouvez placer ce type d'annotation n'importe où dans le script :

library '[library name]'

Il est également possible de charger dynamiquement une bibliothèque tierce qui n'est pas incluse dans les Global Pipeline Libraries de Jenkins. réglages. Par exemple, le chargement d'une bibliothèque à partir de Git nécessite que vous fournissiez le nom de la bibliothèque, une balise de classe Jenkins, l'URL Git de la bibliothèque et des informations d'identification valides pour accéder à la bibliothèque.

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

Une autre méthode consiste à créer un lien direct vers un référentiel Git contenant une bibliothèque. Lors de la configuration d'un pipeline, faites défiler jusqu'au Pipeline section et sélectionnez le script de pipeline de SCM option de la Définition menu déroulant.

Une fois que vous avez sélectionné Git option du SCM menu déroulant, ajoutez l'URL du référentiel, les informations d'identification et l'ID de la branche, puis cliquez sur Enregistrer pour confirmer.


Ubuntu
  1. Ansible Playbook :comment créer et configurer des playbooks

  2. Secrets Kubernetes - Comment créer, utiliser et accéder aux secrets

  3. Volumes Docker NFS :comment créer et utiliser

  4. Comment créer et utiliser des sous-domaines

  5. Introduction aux bibliothèques partagées Linux (comment créer des bibliothèques partagées)

Comment créer et utiliser un fichier d'échange sous Linux

Comment installer et utiliser Jenkins sur Ubuntu 18.04 et 16.04 LTS

Comment installer et configurer Jenkins sur CentOS 8 / RHEL 8

Comment installer et configurer Jenkins sur Ubuntu

Comment installer et configurer Jenkins dans Ubuntu 20.04

Comment configurer et utiliser le pont réseau dans Ubuntu Linux