Sobes.tech
Middle

Que tipo de pipelines utiliza no Jenkins: escritos em Groovy ou declarativos?

sobes.tech IA

Resposta da IA

Uso ambos os tipos, mas prefiro os declarativos para a maioria dos projetos.

A sintaxe declarativa é mais legível, compreensível e fácil de manter, especialmente em pipelines grandes e complexos. É adequada para descrever etapas padrão de construção, teste e implantação.

Exemplo de pipeline declarativo:

// Pipeline declarativo
pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
        }
        stage('Deploy') {
            steps {
                echo 'A implantar a aplicação...'
            }
        }
    }
}

Os pipelines script (escritos em Groovy) uso-os para cenários mais complexos que requerem comportamento dinâmico, ramificações ou lógica não padrão, que é difícil de implementar de forma declarativa.

Exemplo de pipeline script:

// Pipeline script
node {
    stage('Checkout') {
        // Obtenção do código fonte
    }

    stage('Build') {
        // Construção do projeto
    }

    if (env.BRANCH_NAME == 'master') {
        stage('Deploy em Produção') {
            // Desdobramento em produção
        }
    } else {
        stage('Deploy em Staging') {
            // Desdobramento em staging
        }
    }
}

Combinar abordagens permite obter flexibilidade e legibilidade, onde o pipeline declarativo descreve as principais etapas, e os blocos script adicionam lógica específica.

Diferenças principais:

Característica Declarativo Script (Groovy)
Sintaxe Estruturada, previsível Mais flexível, baseado em Groovy
Legibilidade Alta Depende da complexidade do código
Estrutura Secções claramente definidas (stages, steps, agent, options, etc.) Código Groovy arbitrário
Capacidades Adequado para cenários padrão Flexibilidade para cenários complexos
Suporte Mais simples Mais complexo em grandes bases de código
Erros Mais informativos na fase de análise Podem ocorrer em tempo de execução

Resumindo, prefiro pipelines declarativos como padrão, usando scripts apenas quando necessário para lógica de negócio específica ou integrações complexas. Isso garante um equilíbrio entre facilidade de manutenção e flexibilidade.