Estoy tratando de convertir mi flujo de trabajo de base de proyecto de estilo antiguo a una tubería basada en Jenkins. Mientras revisaba docs encontré que hay dos sintaxis diferentes llamadas scripted
y declarative
. Como el lanzamiento de la sintaxis Jenkins web declarative
recientemente (finales de 2016). Aunque hay una nueva versión de la sintaxis Jenkins todavía soporta la sintaxis de secuencias de comandos también.
Ahora, no estoy seguro en qué situación cada uno de estos dos tipos sería un mejor partido. ¿La sintaxis scripted
será obsoleta pronto? Entonces, ¿será declarative
el futuro de la tubería Jenkins?
Cualquiera que pueda compartir algunas ideas sobre estos dos tipos de sintaxis.
Cuando se creó Jenkins Pipeline, se eligió Groovy como base. Jenkins ha sido enviado por mucho tiempo con un motor Groovy embebido para proveer capacidades avanzadas de scripting para administradores y usuarios por igual. Además, los implementadores de Jenkins Pipeline encontraron en Groovy una base sólida sobre la que construir lo que ahora se conoce como "Scripted Pipeline" DSL.
Al ser un entorno de programación completo, Scripted Pipeline ofrece una enorme flexibilidad y extensibilidad a los usuarios de Jenkins. La curva de aprendizaje de Groovy no es típicamente deseable para todos los miembros de un equipo dado, por lo que Declarative Pipeline fue creado para ofrecer una sintaxis más simple y de opinión para la autoría de Jenkins Pipeline.
Ambos son fundamentalmente el mismo subsistema de Pipeline. Ambos son implementaciones duraderas de "Pipeline como código." Ambos son capaces de utilizar pasos incorporados en Pipeline o proporcionados por plugins. Ambos son capaces de utilizar las bibliotecas compartidas
Sin embargo, difieren en la sintaxis y la flexibilidad. Declarative limita lo que está disponible para el usuario con una estructura más estricta y predefinida, por lo que es una opción ideal para tuberías de entrega continua más simples. Scripted proporciona muy pocos límites, en la medida en que los únicos límites en la estructura y la sintaxis tienden a ser definidos por el propio Groovy, en lugar de cualquier sistema específico de Pipeline, por lo que es una opción ideal para los usuarios avanzados y aquellos con requisitos más complejos. Como su nombre indica, Declarative Pipeline fomenta un modelo de programación declarativo. Mientras que Scripted Pipelines sigue un modelo de programación más imperativo.
Copiado de https://jenkins.io/doc/book/pipeline/syntax/#compare
declarative parece ser la opción más preparada para el futuro y la que la gente recomienda. es la única que admite Visual Pipeline Editor. admite la validación. y acaba teniendo la mayor parte de la potencia de scripted, ya que se puede volver a scripted en la mayoría de los contextos. de vez en cuando, a alguien se le ocurre un caso de uso en el que no puede hacer lo que quiere con declarative, pero por lo general se trata de personas que han estado utilizando scripted durante algún tiempo, y es probable que estas lagunas en las funciones se cierren con el tiempo.
más contexto: https://jenkins.io/blog/2017/02/03/declarative-pipeline-ga/
La documentación de Jenkins explica y compara adecuadamente ambos tipos.
Para citar: "Scripted Pipeline ofrece una enorme cantidad de flexibilidad y extensibilidad a los usuarios de Jenkins. La curva de aprendizaje Groovy no es típicamente deseable para todos los miembros de un equipo dado, por lo que Declarative Pipeline fue creado para ofrecer una sintaxis más simple y más opinable para la autoría de Jenkins Pipeline.
Los dos son fundamentalmente el mismo subsistema Pipeline underneath."
Lea más aquí:https://jenkins.io/doc/book/pipeline/syntax/#compare