tutorial steps multibranch example español jenkins jenkins-pipeline

steps - jenkins pipeline tutorial



¿Puedo crear etapas dinámicamente en una tubería de Jenkins? (3)

Necesito lanzar un conjunto dinámico de pruebas en una tubería declarativa. Para una mejor visualización, me gustaría crear un escenario para cada prueba. ¿Hay una manera de hacerlo?

La única forma de crear un escenario que conozco es:

stage(''foo'') { ... }

He visto este ejemplo , pero no usa sintaxis declarativa.


Utilice la sintaxis con guiones que permita más flexibilidad que la sintaxis declarativa, aunque el declarativo esté más documentado y recomendado.

Por ejemplo, las etapas se pueden crear en un bucle:

def tests = params.Tests.split('','') for (int i = 0; i < tests.length; i++) { stage("Test ${testd[i]}") { sh ''....'' } }


Es posible que desee echarle un vistazo a este ejemplo : puede hacer que una función devuelva un cierre que debería tener un escenario.

Este código muestra el concepto, pero no tiene un escenario.

def transformDeployBuildStep(OS) { return { node (''master'') { wrap([$class: ''TimestamperBuildWrapper'']) { ... } } // ts / node } // closure } // transformDeployBuildStep stage("Yum Deploy") { stepsForParallel = [:] for (int i = 0; i < TargetOSs.size(); i++) { def s = TargetOSs.get(i) def stepName = "CentOS ${s} Deployment" stepsForParallel[stepName] = transformDeployBuildStep(s) } stepsForParallel[''failFast''] = false parallel stepsForParallel } // stage


Utilizo esto para generar mis etapas que contienen un trabajo de Jenkins en ellas. build_list es una lista de trabajos de Jenkins que quiero activar desde mi trabajo principal en Jenkins, pero tengo un escenario para cada trabajo que es desencadenante.

build_list = [''job1'', ''job2'', ''job3''] for(int i=0; i < build_list.size(); i++) { stage(build_list[i]){ build job: build_list[i], propagate: false } }