En aquest tema, aprendrem a configurar una pipeline de Integració Contínua (CI) a Jenkins. La Integració Contínua és una pràctica de desenvolupament de programari on els desenvolupadors integren el seu codi en un repositori compartit amb freqüència, i cada integració és verificada per una build automatitzada per detectar errors tan aviat com sigui possible.
Objectius d'Aprenentatge
- Entendre els conceptes bàsics de la Integració Contínua.
- Configurar una pipeline de CI a Jenkins.
- Executar i monitorar la pipeline de CI.
Conceptes Bàsics de la Integració Contínua
Abans de començar amb la configuració, és important entendre alguns conceptes clau de la Integració Contínua:
- Commit Freqüent: Els desenvolupadors han de fer commits freqüents al repositori de codi.
- Build Automatitzada: Cada commit ha de desencadenar una build automatitzada.
- Test Automatitzat: Les proves automatitzades s'han d'executar com a part de la build.
- Feedback Ràpid: Els desenvolupadors han de rebre feedback ràpid sobre l'estat de la build.
Passos per Configurar una Pipeline de CI
- Preparació del Repositori de Codi
Assegura't que el teu repositori de codi estigui configurat correctament i que tingui un fitxer de configuració de build (per exemple, un pom.xml
per a Maven o un build.gradle
per a Gradle).
- Instal·lació de Plugins Necessaris
Jenkins té una gran varietat de plugins que poden ser útils per a la CI. Alguns dels plugins més comuns són:
- Git Plugin: Per integrar Jenkins amb Git.
- Maven Integration Plugin: Per projectes que utilitzen Maven.
- Gradle Plugin: Per projectes que utilitzen Gradle.
- Creació d'una Nova Feina de Jenkins
- Aneu al tauler de Jenkins.
- Feu clic a "New Item".
- Introduïu un nom per a la feina i seleccioneu "Pipeline".
- Feu clic a "OK".
- Configuració de la Feina
-
General:
- Proporcioneu una descripció per a la feina.
-
Source Code Management:
- Seleccioneu "Git".
- Introduïu l'URL del repositori de Git.
- Configureu les credencials si és necessari.
-
Build Triggers:
- Seleccioneu "Poll SCM" i configureu la freqüència amb la qual Jenkins ha de comprovar els canvis al repositori (per exemple,
H/5 * * * *
per comprovar cada 5 minuts).
- Seleccioneu "Poll SCM" i configureu la freqüència amb la qual Jenkins ha de comprovar els canvis al repositori (per exemple,
-
Pipeline:
- Seleccioneu "Pipeline script from SCM".
- Seleccioneu "Git" com a SCM.
- Introduïu l'URL del repositori de Git.
- Introduïu el camí al fitxer
Jenkinsfile
(per exemple,Jenkinsfile
).
- Creació del Jenkinsfile
El Jenkinsfile
defineix la pipeline de CI. A continuació es mostra un exemple bàsic per a un projecte Maven:
pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/usuari/repo.git' } } stage('Build') { steps { sh 'mvn clean install' } } stage('Test') { steps { sh 'mvn test' } } } post { always { junit '**/target/surefire-reports/*.xml' } } }
- Executar la Pipeline
- Des del tauler de Jenkins, seleccioneu la feina que heu creat.
- Feu clic a "Build Now".
- Monitoritzeu l'execució de la pipeline a la secció "Build History".
Exercici Pràctic
Creeu una pipeline de CI per a un projecte de codi obert a GitHub que utilitzi Maven. Seguiu els passos descrits anteriorment i assegureu-vos que la pipeline s'executi correctament.
Solució de l'Exercici
- Creeu una nova feina de pipeline a Jenkins.
- Configureu el repositori de Git:
https://github.com/apache/commons-lang.git
. - Configureu el
Jenkinsfile
amb el següent contingut:
pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/apache/commons-lang.git' } } stage('Build') { steps { sh 'mvn clean install' } } stage('Test') { steps { sh 'mvn test' } } } post { always { junit '**/target/surefire-reports/*.xml' } } }
- Executeu la pipeline i verifiqueu que totes les etapes s'executen correctament.
Resum
En aquest tema, hem après a configurar una pipeline de CI a Jenkins. Hem cobert els conceptes bàsics de la Integració Contínua, els passos per configurar una pipeline i hem creat un Jenkinsfile
per definir la pipeline. També hem realitzat un exercici pràctic per reforçar els conceptes apresos. En el següent tema, explorarem com configurar una pipeline de Desplegament Continu (CD).
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