Ejecutar un pipeline de Jenkins con cada actualización de un repositorio
- Francisco Javier Huete
- Implantacion
- March 9, 2025
Índice
Para que Jenkins ejecute un pipeline cada vez que se actualice un repositorio git se pueden establecer varias configuraciones diferentes. En este caso, se incluye el Jenkinsfile en el repositorio de GitHub.
pipeline {
agent {
docker { image 'debian'
args '-u root:root'
}
}
stages {
stage('Clone') {
steps {
git branch:'master',url:'https://github.com/josedom24/ic-travis-diccionario.git'
}
}
stage('Install') {
steps {
sh 'apt-get update && apt-get install -y aspell-es '
}
}
stage('Test')
{
steps {
sh '''
export LC_ALL=C.UTF-8
OUTPUT=`cat doc/*.md | aspell list -d es -p ./.aspell.es.pws`; if [ -n "$OUTPUT" ]; then echo $OUTPUT; exit 1; fi'''
}
}
}
post {
always {
mail to: 'debian@javihuete.site',
subject: "Status of pipeline: ${currentBuild.fullDisplayName}",
body: "${env.BUILD_URL} has result ${currentBuild.result}"
}
}
}
Después, en Jenkins se crea un nuevo proyecto y en él se crea un trigger de tipo Consultar repositorio (SCM)
. En el campo Programado
se indica el valor * * * * *
, que indica que se revise si hay cambios en el repositorio una vez cada minuto.
A continuación, en la zona de definición del pipeline se elige la opción Pipeline script from SCM
y se rellenan los campos con los valores apropiados. El SCM
es git
y se indican también la URL del repositorio y la rama del repositorio que Jenkins debe revisar.
El último paso del Jenkinsfile envía un correo electrónico con el resultado del pipeline. El envío de correos desde Jenkins se configura en Administrar Jenkins -> System
. La dirección de correos del administrador debe estar configurada en la instalación de Jenkins. Si no, se puede indicar una en este momento en el campo System Admin e-mail address
. En el apartado Notificación por correo electrónico
se configuran los diferentes apartados Servidor de correo saliente (SMTP)
y Sufijo de email por defecto
con los datos del servidor de correos que se quiera usar.