Hay un lorem ipsum encima del nombre del profesor 😄
Introducción
Introducción a Automatización
Jenkins Core
Introducción a Jenkins
Instalación y Configuración Básica de Jenkins
Manejo Básico de Usuarios
Jobs
¿Qué es un Job?
Configuración de un Job
¿Cómo Jenkins interactúa con su máquina local?
Plugins
Jenkins y su ecosistema de Plugins
Cadenas de Jobs
Connectándonos a GitHub
Pipelines
¿Qué es un 'Pipeline'?
¿Cómo puedo acelerar mi development de Pipelines?
Slave
Introducción a Slaves
Conectado un Slave
Cierre
Cierre del curso, introducción a DevOps
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Yamil Asusta
Pipelines nos permiten configurar nuestros Jobs con código en lugar de hacerlo en la interfaz visual. En Jenkins los hay de dos maneras: Scripting y Declarative.
Aportes 33
Preguntas 5
Hay un lorem ipsum encima del nombre del profesor 😄
Se debe poner tal cual está en el jenkinsfile la version de node … node-11.0.0 lo tenía como 11.0.0 y me arrojaba errores…
Pipeline concepts
The following concepts are key aspects of Jenkins Pipeline, which tie in closely to Pipeline syntax (see the overview below).
para que no les suceda el mismo error que me sucedió a mi que no detecta la versión de Node.
Primero debe verificar cual esta instalada o nombrada
si en el archivo Jenkinsfile aparece de este modo
nodejs ‘node-10.19.0’
Deben ir administrar Jenkins
Global Tool Configuration
NodeJS
instalaciones de NodeJS
Donde dice nombre deben colocar el mismo nombre del Jenkins file
node-10.19.0
y en version NodeJS 10.19.0 según la versión que ya mencionaron en el archivo Jenkins file, recuerden actualizarlo del repositorio
también verifiquen que esa sea la versión instalada en la maquina anfitriona desde consola con
node -v
Aquí las capturas
SUCCESS
Automatizando la automatización.
Si tienen problema en un entorno windows podrian cambiar el script para no utilizar sh sino bat:
pipeline {
agent any
tools {
nodejs 'node-11.0.0'
}
options {
timeout(time: 2, unit: 'MINUTES')
}
stages {
stage('Install dependencies') {
steps {
bat 'cd jenkins-tests && npm i'
}
}
stage('Run tests') {
steps {
bat 'cd jenkins-tests && npm t'
}
}
}
}
En este caso usan un repositorio de Gihub público. ¿Cómo seria si uso uno privado de Bitbucket?
Basicamente un pipeline es como un Dockerfile!!!
para medir cobertura de código estatico podemos usar SonarQube y Jacoco
Para mi caso en particular, para no tener que modificar el Jenkinsfile opté por hacer lo siguiente:
Ingresé a Panel de control -> Global Tool Configuration:
Seleccioné la versión de NodeJS más reciente a día de hoy (17.8.0), oero en el nombre le asigné “node-11.0.0”, tal cual como está en el Jenkinsfile del repo.
Lo hice de esta manera porque al instalar la versión de NodeJS 11.0.0, generaba error al intentar ejecutar el npm i.
“Blue Ocean” muestra el pipeline parecido al de gitlab 😃
Si a alguien le sale este error
no olvide colocar
*/*
en la branch de la siguiente forma 👇
Hola! tengo el siguiente error al ejecutar:
Caused: BUG! exception in phase 'semantic analysis' in source unit 'WorkflowScript' unexpected NullpointerException
Alguien tiene idea de lo que puede estar pasando?
Para reportes de pruebas e2e el plugin de cucumber es genial!
SINTAXIS BÁSICA DE UN PIPELINE DECLARATIVO
Pipeline {} Identificamos dónde empieza y termina el pipeline así como los pasos que tiene
Agent. Especificamos cuando se ejecuta el pipeline. Uno de los comandos más utilizados es any, para ejecutar el pipeline siempre y cuando haya un ejecutor libre en Jenkins.
Stages. Bloque donde se definen una serie de estados a realizar dentro del pipeline.
Stage. Bloque que define una serie de tareas realizadas dentro del pipeline, por ejemplo: Build. test, deploy, etc. Podemos utilizar varios plugins en Jenkins para visualizar el estado o el progreso de estos estados.
Steps. Son todos los pasos a realizar dentro de un stage. Podemos definir uno o varios pasos.
Step. Es una tarea simple dentro del pipeline. Fundamentalmente es un paso donde se le dice a Jenkins qué hacer en un momento específico o paso del proceso. Por ejemplo, para ejecutar un comando en shell podemos tener un paso en el que tengamos la línea sh ls para mostrar el listado de ficheros de una carpeta.
En mi caso, yo tenia por defecto una versión de node mas reciente que la del profesor, entonces me fui a: panel de control -> administrar jenkins -> Global tool configuration y busque NodeJS, le di en instalaciones de NodeJS… y agregue una con el nombre exacto como lo puso el profeso, es decir “node-11.0.0”, escogí esa misma versión en que versión quería utilizar y guarde cambios y listo, el pipeline se ejecuto sin errores 😄
Un agente es una instancia de Jenkins
Todavía no termino de armar mi servidor
ejecuto que bien pero en la version que yo estoy usando lee asi la linea del node (nodejs ‘13.3.0’)
El enlace está roto
Al día de hoy deje la versión de node de la siguiente manera:
tools {
nodejs 'node-17.5.0'
}
De igual forma en en Global tool configuration agregue una nueva versión literalmente con nombre node-17.5.0 con esa versión de node.
Esto debido a que me estaba dando errores en Install dependencies
Un agente es una instancia de Jenkins.
No esta cargando la página del video 10
Tengo algunos errores al ejecutar los tests con el plugin de NodeJS en Windows, no sé si en Jenkins exista incompatibilidades con este SO porque en Ubuntu me ejecuta de maravilla… Hay alguna configuración extra que deba hacer ??
super gracias 😃
siempre habia escuchado sobre los pipeline pero nunca habia hecho uno yo mismo y me salio bien, aunque me salio error pero fue por la version del nodejs, lo solucione como dijo el profe acerca de la version.
Saludos, tengo la version node 11.15.0, cambio el github y pongo mi version ya que no me deja instalar la version que indica el profesor para contruir el pipeline, pero me saltau error, no creo que sea por la version de nodejs, ya que cambie la version en mi archivo de github la 11.15.0 y tampoco construye, alquien que tenga el mismo error? y que pueda ayudarme, gracias
Si a alguien le da el siguiente error en el pipeline: “java.lang.IllegalArgumentException: referencias/heads/** de especificación de referencia no válidas”
La solución es configurar en el especificador de remas lo siguiente, y no dejarlo en blanco:
/
Después a mi me dio otro error pero era porque el pipeline del github estaba escrito “node- 11.0.0” y yo tuve que poner “20.8.0”
buen profe
interesante…
Importante tener en cuenta que en la opcón donde se indica las ramas del repositorio (Branches to build), se debe especificar como lo hizo el profe asterisco/asterisco
Al menos en mi caso, si lo dejaba en blanco me arrojaba un error de Java.
GIT
Raiz
agent any
correr en cualquier agente una instancia de jenkins
tools
nodejs 'node-11.0.0' -> esta versión es diferente de la instalada
options
timeout de 2 minutos
Stages (Donde se va a ejecutar nuestro código)
stage ('Install dependencies') -> intalar las dependencias
Jenkins
Crear Job
name: test-pipeline-sum-node
Type: Pipeline
CONFIGURE
Build Triggers
GitHub hook trigger for GITScm polling
Pipeline
Definition: Pipeline script from SCM
SCM: Git
Repository URL: https://github.com/elbuo8/platzi-scripts.git
Branch Specifier: */* -> Todos los branches
Script Path: jenkins-tests/Jenkinsfile
Ejecución
1. Instalar la node-11.0.0
2. Ejecutar job
Conclusión
Con el pipeline se ve cada fase de ejecución
En el console output se ve el código del pipeline (gris) y del freestyle (negro)
A mi la primera vez, me marcaba error, porque se pasaba de los 2 minutos, y solo agregue más timeout al archivo Jenkinsfile y con eso se solucionó, me parece que tardaba en instalar dependencias, ya después no tardaba ni un minuto.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?