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_MESSAGEamb 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
