No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Qué es un 'Pipeline'?

11/15
Recursos

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

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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

  1. Pipeline: A Pipeline is a user-defined model of a CD pipeline. A Pipeline’s code defines your entire build process, which typically includes stages for building an application, testing it and then delivering it.
  2. Node: A node is a machine which is part of the Jenkins environment and is capable of executing a Pipeline.
  3. Stage: A stage block defines a conceptually distinct subset of tasks performed through the entire Pipeline (e.g. “Build”, “Test” and “Deploy” stages), which is used by many plugins to visualize or present Jenkins Pipeline status/progress. [6]
  4. Step: A single task. Fundamentally, a step tells Jenkins what to do at a particular point in time (or “step” in the process). For example, to execute the shell command make use the sh step: sh ‘make’. When a plugin extends the Pipeline DSL, [1] that typically means the plugin has implemented a new step.

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.