Comment utiliser les variables d'environnement dans Jenkinsfile

Comment utiliser les variables d'environnement dans Jenkinsfile
Jenkins est une application de serveur basée sur Java qui s'exécute dans un conteneur de servlet comme Apache, Tomcat ou jetée. Il se compose de plugins qui fournissent diverses fonctionnalités et fonctionnalités telles que la prise en charge des systèmes de contrôle de version, des outils de construction et des cadres de test. Jenkins fournit également une interface Web pour gérer et configurer les builds, et afficher les résultats et les rapports de build.

Jenkins est devenu l'un des serveurs d'automatisation les plus populaires qui joue un rôle important dans les opérations CI / CD dans le cycle de développement.

Dans Jenkins, il existe différentes façons de créer un nouveau travail Jenkins. Ces méthodes comprennent:

  1. Interface Web de Jenkins - Une façon de créer un travail dans Jenkins est d'utiliser l'interface Web Jenkins. Cela implique de se connecter à Jenkins, de cliquer sur le lien «nouvel élément» et de suivre les invites pour créer un nouveau travail.
  2. Jenkinsfile - Une autre façon de créer un emploi à Jenkins est d'utiliser un Jenkinsfile. Un JenkinsFile est un fichier texte qui contient les définitions pour un ou plusieurs emplois Jenkins. Il est généralement vérifié dans le contrôle de la version et peut être utilisé pour automatiser le processus de création et de configuration de travaux.
  3. API Jenkins - Vous pouvez également créer des emplois dans Jenkins en utilisant l'API Jenkins. L'API Jenkins vous permet de créer et de configurer les travaux par programme, ainsi que de déclencher les builds et de récupérer les résultats de build.
  4. Outils tiers - Vous pouvez utiliser divers outils et plugins tiers pour créer et gérer les travaux Jenkins. Par exemple, le plugin DSL Jenkins Job DSL vous permet de créer les travaux à l'aide d'un langage spécifique au domaine (DSL) qui est écrit en groovy.
  5. Copie d'un emploi existant - Enfin, vous pouvez créer un nouvel emploi dans Jenkins en copiant un emploi existant. Cela peut être utile si vous souhaitez créer un nouveau travail qui est similaire à celui existant mais avec de légères différences.

Malgré toutes les méthodes de création d'un emploi à Jenkins, l'utilisation de JenkensFile reste l'une des plus populaires. En effet. Le fichier peut également être intégré dans un référentiel, permettant à Jenkins de détecter et d'exécuter automatiquement la construction.

Par conséquent, lorsque vous travaillez dans un JenkinsFile, vous rencontrerez de tels cas où vous devez utiliser les variables environnementales.

Quelles sont les variables d'environnement

Les variables d'environnement se réfèrent à un ensemble de paires de valeurs clés qui peuvent être accessibles ou définies à partir d'un travail Jenkins. Les variables d'environnement sont utiles lorsque vous devez stocker des informations requises dans plusieurs projets ou étapes. Cela vous permet de passer les valeurs qui sont stockées dans les variables de divers projets sans répétition.

Jenkins expose diverses variables d'environnement comme suit:

  • Variables mondiales - Jenkins fournit un ensemble de variables mondiales disponibles pour tous les travaux et versions. Ces variables sont accessibles en utilisant le env Objet dans un JenkinsFile ou un script.
  • Variables spécifiques à l'emploi - Nous pouvons également définir les variables d'environnement dans le cadre pour un emploi donné. Nous pouvons définir ces types de variables d'environnement dans le fichier de configuration du travail. Cependant, il est bon de se rappeler que ces variables ne sont accessibles que sur ce travail.
  • Variables de construction - La troisième variable d'environnement dans Jenkins est les variables de construction. Ces variables peuvent être définies en utilisant le env Bloquer dans un JenkinsFile ou en définissant les variables d'environnement dans un script.
  • Variables spécifiques à l'agent - Enfin, Jenkins nous permet de définir les variables spécifiques à un agent donné. Nous pouvons définir les variables d'agent dans le fichier de configuration de l'agent. De même, ces types de variables sont étendus à cet agent uniquement.

Voir les variables environnementales dans Jenkins

Pour afficher les variables d'environnement disponibles sur votre contrôleur Jenkins, accédez à l'URL suivante:

[Jenkins_address] / Env-Vars.html

Exemple:

http: // localhost: 8080 / env-vars.html

Un exemple de sortie est le suivant:

Accéder aux variables environnementales dans Jenkins

Comme mentionné, Jenkins expose les variables d'environnement en utilisant le nom d'objet env. Par conséquent, nous pouvons utiliser cet objet pour accéder aux valeurs de diverses variables d'environnement dans Jenkins.

Prenez l'exemple suivant Pipeline:

pipeline
agent
étapes
étape ('envarsevs')
pas
Echo "Job: $ env.Build_id fonctionnant sur $ env.Jenkins_url "



L'exemple précédent utilise l'objet Env pour obtenir le numéro de build et l'adresse du serveur. Par conséquent, l'exécution du pipeline précédent doit renvoyer la sortie suivante:

Job: 1 Exécution sur http: // localhost: 9001 /

Nous pouvons également accéder aux variables de l'environnement Jenkins en utilisant le nom court variable. Par exemple, nous pouvons obtenir le numéro de construction comme $ build_number:

pipeline
agent
étapes
étape ('envarsevs')
pas
Echo "Job: $ build_id fonctionnant sur $ jenkins_url"



Sortie résultante:

Job: 2 en cours d'exécution sur http: // localhost: 9001 /

Déclarez les variables d'environnement spécifiques à l'emploi chez Jenkins

Vous pouvez définir les variables d'environnement spécifiques au travail dans le Jenkisfile à l'aide d'un bloc d'environnement.

La syntaxe est la suivante:

environnement
[nom de variable] = "[valeur]"

Un exemple de sortie est le suivant:

pipeline
agent
environnement
Cc = 'gcc'

L'exemple précédent devrait créer un environnement local appelé CC avec la valeur de GCC.

Conclusion

Vous avez appris les différentes variables de Jenkins et comment créer et accéder aux variables d'environnement globales et locales de Jenkins.