Taller: Corrector ortográfico de documentos markdown (test)
Introducción
maginemos que estamos escribiendo documentos markdown y lo guardamos en un repositorio de github. Queremos que cada vez que hagamos una modificación (commit - push) se pruebe (test) de forma automática si tienes alguna falta de ortografía. Ese proceso lo vamos a hacer de forma automática y continua con Jenkins. Recuerda que el repositorio es https://github.com/josedom24/ic-diccionario
Definición del pipeline
Hasta ahora al definir un pipeline lo hemos escrito directamente en la configuración. Otra forma de hacerlo es tener definido el pipeline en un fichero llamado Jenkinsfile que estará en un repositorio.
-
Vamos a crear un contenedor con debian, y vamos a usar el usuario root en la imagen.
-
Instalamos git y nano
FROM debian:latest
RUN apt-get update && apt-get install -y git nano
USER root
- Clonamos el repositorio con el comando
giten el stageclone.
pipeline {
agent any
stages {
stage('clone') {
steps {
sh 'git clone https://github.com/legnakra/ic-diccionario'
}
}
}
}
- En el stage Install actualizamos e instalamos la herramienta que vamos a utilizar. Podríamos partir de una imagen construida por nosotros donde tuviéramos ya esta herramienta instalada, y no haría falta este paso.
stage('Install') {
steps {
sh 'apt-get update'
sh 'apt-get install -y aspell aspell-es'
}
}
- En el stage Test hacemos la comprobación, hemos configurado el contenedor para que use UTF8.
stage('Test') {
steps {
sh 'export LANG=es_ES.UTF-8'
sh 'aspell --lang=es --mode=tex check ic-diccionario/README.md'
}
}
Disparador del pipeline
Tenemos varias formas de activar de forma automática la ejecución del pipeline:
En este ejercicio vamos a usar la opción Consultar repositorio (SCM). Esta opción no es exactamente cuando se hace un push en el repositorio, sino que se pone un programador cron indicando cada cuanto tiempo se mira el repositorio, si ha cambiado el repositorio se lanza el pipeline. Nosotros vamos a poner: * * * * *, miraremos el repositorio cada minuto:
Notificaciones del pipeline
Vamos a aprender como podemos hacer que el pipeline mande un correo al finalizar. Para ello lo primero instala un servidor de correo de forma adecuada en la máquina que tiene Jenkins. Lo siguiente es configurar Jenkins en Administrar Jenkins -> Configurar el sistema:
Y al pileline le añadimos las siguientes líneas:
stages {
...
}
post {
always {
mail to: 'usuario@example.com',
subject: "Status of pipeline: ${currentBuild.fullDisplayName}",
body: "${env.BUILD_URL} has result ${currentBuild.result}"
}
}
}