Les variables d'entorn són una eina poderosa en Jenkins que permeten passar informació entre diferents parts d'una pipeline o feina. Aquestes variables poden contenir informació com rutes de fitxers, credencials, configuracions específiques, i molt més. En aquest tema, aprendrem com utilitzar variables d'entorn en les pipelines de Jenkins.
Conceptes Clau
- Variables d'Entorn Predefinides: Jenkins proporciona una sèrie de variables d'entorn predefinides que es poden utilitzar directament en les pipelines.
- Definició de Variables d'Entorn: Es poden definir variables d'entorn personalitzades dins de les pipelines.
- Accés a Variables d'Entorn: Com accedir i utilitzar aquestes variables dins de les pipelines.
Variables d'Entorn Predefinides
Jenkins proporciona diverses variables d'entorn predefinides que es poden utilitzar en les pipelines. Algunes de les més comunes són:
Variable | Descripció |
---|---|
BUILD_NUMBER |
El número de construcció actual. |
BUILD_ID |
Un identificador únic per a la construcció actual. |
JOB_NAME |
El nom de la feina. |
WORKSPACE |
El directori de treball de la feina. |
JENKINS_HOME |
El directori d'instal·lació de Jenkins. |
GIT_COMMIT |
El hash del commit actual (si s'utilitza Git). |
GIT_BRANCH |
La branca de Git actual (si s'utilitza Git). |
Definició de Variables d'Entorn
Es poden definir variables d'entorn personalitzades dins de les pipelines de Jenkins. Això es pot fer utilitzant la secció environment
en una pipeline declarativa o utilitzant la funció withEnv
en una pipeline scriptada.
Pipeline Declarativa
pipeline { agent any environment { MY_VAR = 'Hello, World!' } stages { stage('Example') { steps { echo "The value of MY_VAR is ${env.MY_VAR}" } } } }
Pipeline Scriptada
node { withEnv(['MY_VAR=Hello, World!']) { stage('Example') { echo "The value of MY_VAR is ${env.MY_VAR}" } } }
Accés a Variables d'Entorn
Les variables d'entorn es poden accedir utilitzant la sintaxi ${env.VARIABLE_NAME}
dins de les pipelines. Aquí teniu un exemple pràctic:
Exemple Pràctic
pipeline { agent any environment { GREETING = 'Hello' TARGET = 'World' } stages { stage('Print Greeting') { steps { script { def message = "${env.GREETING}, ${env.TARGET}!" echo message } } } } }
En aquest exemple, definim dues variables d'entorn GREETING
i TARGET
, i les utilitzem per construir un missatge que es mostra a la consola.
Exercicis Pràctics
Exercici 1: Utilitzant Variables Predefinides
- Crea una pipeline que imprimeixi el número de construcció (
BUILD_NUMBER
) i el nom de la feina (JOB_NAME
).
Solució
pipeline { agent any stages { stage('Print Build Info') { steps { echo "Build Number: ${env.BUILD_NUMBER}" echo "Job Name: ${env.JOB_NAME}" } } } }
Exercici 2: Definint i Utilitzant Variables Personalitzades
- Crea una pipeline que defineixi una variable d'entorn personalitzada
MY_MESSAGE
amb el valor "Hello Jenkins!" i imprimeixi aquest valor.
Solució
pipeline { agent any environment { MY_MESSAGE = 'Hello Jenkins!' } stages { stage('Print Custom Message') { steps { echo "Custom Message: ${env.MY_MESSAGE}" } } } }
Errors Comuns i Consells
- Error: Variable no definida: Assegura't que la variable d'entorn està definida abans d'intentar accedir-hi.
- Error de Sintaxi: Utilitza la sintaxi correcta
${env.VARIABLE_NAME}
per accedir a les variables d'entorn. - Variables Sensibles: No emmagatzemis informació sensible com contrasenyes directament en les variables d'entorn. Utilitza les credencials de Jenkins per a això.
Conclusió
Les variables d'entorn són una eina essencial per gestionar informació i configuracions dins de les pipelines de Jenkins. Hem après com utilitzar variables predefinides, definir variables personalitzades i accedir-hi dins de les pipelines. Amb aquesta base, estàs preparat per utilitzar variables d'entorn per fer les teves pipelines més flexibles i dinàmiques.
Jenkins: De Principiant a Avançat
Mòdul 1: Introducció a Jenkins
Mòdul 2: Conceptes Bàsics de Jenkins
- Visió General del Tauler de Jenkins
- Creant i Executant Feines
- Entenent les Pipelines de Jenkins
- Utilitzant Plugins de Jenkins
Mòdul 3: Pipelines de Jenkins
- Pipeline com a Codi
- Pipelines Declaratives vs Scriptades
- Creant una Pipeline Simple
- Sintaxi de Pipeline
Mòdul 4: Pipelines Avançades de Jenkins
- Etapes i Passos de Pipeline
- Execució Paral·lela en Pipelines
- Utilitzant Variables d'Entorn
- Millors Pràctiques de Pipeline
Mòdul 5: Administració de Jenkins
- Gestionant Nodes de Jenkins
- Configurant la Seguretat
- Còpia de Seguretat i Restauració de Jenkins
- Monitorant Jenkins
Mòdul 6: Integrant Jenkins
- Integració amb Sistemes de Control de Versions
- Integració amb Eines de Compilació
- Integració amb Eines de Prova
- Integració amb Eines de Desplegament
Mòdul 7: Jenkins per a la Integració i el Lliurament Continu (CI/CD)
- Entenent CI/CD
- Configurant una Pipeline de CI
- Configurant una Pipeline de CD
- Automatitzant Desplegaments
Mòdul 8: Temes Avançats de Jenkins
- Utilitzant Jenkins amb Docker
- Jenkins i Kubernetes
- Jenkins com a Codi amb Jenkinsfile
- Escalant Jenkins