Ejecutar un pipeline de Jenkins con cada actualización de un repositorio

Í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.

comments powered by Disqus

Relacionados

Despliegue de una aplicación con contenido persistente en Kubernetes

Para hacer persistente el contenido de una aplicación a los cambios de versiones en despliegues en Kubernetes hay que tener en cuenta dónde la aplicación almacena los datos. En este sentido, una aplicación puede almacenar los datos en el propio sistema donde se ejecuta o en una base de datos externa. Según esta configuración de la propia aplicación, el despliegue se hará de una de las formas que se recogen en este post.

Leer

Comandos para el control de procesos

Un proceso es la unidad básica de trabajo del sistema operativo. En este post podrás encontrar una lista de comandos con los que controlar los procesos que se llevan a cabo en un equipo, así como sus diferentes opciones y ejemplos de uso.

Leer

Instalación de minikube

Minikube es una distribución minimalista de Kubernetes ideal para aprender a usar este orquestador, que instala una distribución de k8s en un único nodo, en este caso, en una máquina virtual usando libvirt y KVM. Para instalar minikube, en primer lugar, se descarga el binario desde el repositorio de Google en el que está publicado.

Leer