smart plugin para descargar consola jenkins groovy

jenkins - descargar - plugin de groovy para smart tv



Oleoducto Jenkins si no funciona (2)

Estoy creando una muestra de tubería de Jenkins, aquí está el código.

pipeline { agent any stages { stage(''test'') { steps { sh ''echo hello'' } } stage(''test1'') { steps { sh ''echo $TEST'' } } stage(''test3'') { if (env.BRANCH_NAME == ''master'') { echo ''I only execute on the master branch'' } else { echo ''I execute elsewhere'' } } } }

esta tubería falla con los siguientes registros de error

Started by user admin org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: WorkflowScript: 15: Not a valid stage section definition: "if (env.BRANCH_NAME == ''master'') { echo ''I only execute on the master branch'' } else { echo ''I execute elsewhere'' }". Some extra configuration is required. @ line 15, column 9. stage(''test3'') { ^ WorkflowScript: 15: Nothing to execute within stage "test3" @ line 15, column 9. stage(''test3'') { ^

Pero cuando ejecuto el siguiente ejemplo de esta URL , se ejecuta correctamente e imprime la parte else.

node { stage(''Example'') { if (env.BRANCH_NAME == ''master'') { echo ''I only execute on the master branch'' } else { echo ''I execute elsewhere'' } } }

La única diferencia que puedo ver es que en el ejemplo de trabajo no hay stages pero en mi caso lo ha hecho.

¿Qué está mal aquí, por favor alguien puede sugerir?


Requiere un poco de reorganización, pero when hace un buen trabajo para reemplazar los condicionales anteriores. Aquí está el ejemplo de arriba escrito usando la sintaxis declarativa. Tenga en cuenta que la etapa test3 ahora es dos etapas diferentes. Uno que se ejecuta en la rama maestra y otro que se ejecuta en cualquier otra cosa.

stage (''Test 3: Master'') { when { branch ''master'' } steps { echo ''I only execute on the master branch.'' } } stage (''Test 3: Dev'') { when { not { branch ''master'' } } steps { echo ''I execute on non-master branches.'' } }


su primer intento es usar tuberías declarativas, y el segundo que funciona es usar tuberías con guión. debe incluir los pasos en una declaración de pasos, y no puede usarlo como un paso de nivel superior en declarativo, por lo que necesita envolverlo en un paso de guión. Aquí hay una versión declarativa de trabajo:

pipeline { agent any stages { stage(''test'') { steps { sh ''echo hello'' } } stage(''test1'') { steps { sh ''echo $TEST'' } } stage(''test3'') { steps { script { if (env.BRANCH_NAME == ''master'') { echo ''I only execute on the master branch'' } else { echo ''I execute elsewhere'' } } } } } }

puede simplificar esto y, posiblemente, evitar la instrucción if (siempre que no necesite el otro) utilizando "cuándo". Consulte "cuándo directiva" en https://jenkins.io/doc/book/pipeline/syntax/ . También puede validar archivos jenkins usando la API de jenkins rest. es super dulce Diviértete con tuberías declarativas en Jenkins!