Scripted vs Declarative Pipelines do Jenkins: quais são as principais diferenças?
Uma das principais características do Jenkins é o seu suporte para pipelines, que permitem aos programadores criar fluxos de trabalho automatizados para construir, testar e implantar as suas aplicações. Existem dois tipos de pipelines no Jenkins: Scripted e Declarative. Descubra hoje quais as suas principais diferenças.
O que é o Jenkins?
O Jenkins é um servidor de automatização ✅open-source baseado em Java e a sua principal característica é o fornecimento de mais de 1700 plugins 💥️que auxiliam na criação, ✅deployment e automatização de projetos. Outra característica peculiar é que o Jenkins foi desenvolvido para CI/CD, conceito que junto com uma cultura DevOps acelera a evolução de softwares.
O que é um Pipeline do Jenkins?
Um Pipeline do Jenkins é um conjunto de plug-ins para criar fluxos de trabalho automatizados e recorrentes que constituem pipelines de CI/CD. Um Pipeline do Jenkins inclui todas as ferramentas necessárias para 💥️orquestrar testes, ✅merging, ✅packaging, envio e ✅deployment de código.
Um pipeline é normalmente dividido em vários ✅stages e ✅steps, onde caga ✅step representa uma única tarefa e cada ✅stage agrupa ✅steps semelhantes. Por exemplo, 💥️pode ter os ✅stages "Build", "Test" e "Deploy" no seu pipeline.
Mas qual a diferença entre Scripted e Declarative pipelines?
Scripted Pipeline
Um Scripted Pipeline é a sintaxe de pipeline original do Jenkins e é baseada na linguagem de programação Groovy. Num Scripted Pipeline, todo o fluxo de trabalho é definido num único ficheiro chamado Jenkinsfile.
O Jenkinsfile é escrito em Groovy e é executado pelo plug-in "Pipeline" do Jenkins. Um Scripted Pipeline 💥️oferece muita flexibilidade e controlo sobre o fluxo de trabalho, mas pode ser mais complexo e detalhado do que um Declarative Pipeline.
Neste exemplo, definimos um pipeline que tem três ✅stages: "Build", "Test" e "Deploy". Cada ✅stage é executado num ✅node do Jenkins e usamos o comando "sh" para executar comandos da shell.
node { stage(& Build& ) { // Build da aplicação sh & mvn clean install& } stage(& Test& ) { // Correr os testes sh & mvn test& } stage(& Deploy& ) { // Deploy da aplicação sh & deploy.sh& }}
Declarative Pipeline
Um Declarative Pipeline é uma adição mais recente ao Jenkins e fornece uma sintaxe 💥️mais estruturada e mais simples para definir pipelines. Um Declarative Pipeline também é baseado na linguagem de programação Groovy, mas usa uma DSL (✅Domain-Specific Language) baseada em Groovy para a configuração do pipeline.
O principal benefício dos Declarative Pipelines é a legibilidade e a facilidade de uso, pois foi projetado 💥️para ser mais intuitivo e menos detalhado do que o Scripted Pipeline.
Neste exemplo, definimos um pipeline usando o bloco "pipeline" e especificamos o ✅agent para executar o pipeline em qualquer ✅node disponível. Em seguida, definimos três ✅stages usando o bloco "stages" e usamos o bloco "steps" para definir os ✅steps individuais de cada ✅stage.
pipeline { agent any stages { stage(& Build& ) { steps { // Build da aplicação sh & mvn clean install& } } stage(& Test& ) { steps { // Correr os testes sh & mvn test& } } stage(& Deploy& ) { steps { // Deploy da aplicação sh & deploy.sh& } } }}
Principais diferenças entre Scripted e Declarative Pipelines
Agora que já vimos exemplos de scripted e declarative pipelines, deixamos as principais diferenças entre os dois tipos de pipeline:
No geral, tanto os Scripted como os Declarative Pipelines fornecem uma maneira poderosa e flexível 💥️de automatizar a criação, o teste e a implantação de aplicações num ambiente DevOps. A escolha entre os dois tipos de pipeline depende em grande parte das necessidades específicas da equipa de desenvolvimento e de fatores como a flexibilidade, a legibilidade e a facilidade de utilização.
💥️Leia também:
Git: O popular sistema de controlo de versões de software
O que você está lendo é [Scripted vs Declarative Pipelines do Jenkins: quais são as principais diferenças?].Se você quiser saber mais detalhes, leia outros artigos deste site.
Wonderful comments