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

    Login You can publish only after logging in...