Configuração Focada no Trabalho com o Plugin Jenkins DSL

As organizações estão cada vez mais adotando o Jenkins para automatizar seus processos de construção e teste, tornando a gestão manual de trabalhos no Jenkins difícil. A boa notícia é que o plugin Jenkins DSL permite que você defina trabalhos no Jenkins usando uma sintaxe de Linguagem Específica de Domínio (DSL).

O Jenkins DSL torna possível armazenar trabalhos em sistemas de controle de versão, compartilhá-los com outros usuários e gerar novos trabalhos a partir de modelos. E neste tutorial, você aprenderá como aproveitar o plugin Jenkins DSL para ajudar na automação do desenvolvimento de aplicativos.

Continue lendo para nunca mais precisar clicar através da interface do Jenkins para criar um trabalho tediosamente!

Pré-requisitos

Este tutorial será uma demonstração prática. Se você deseja acompanhar, certifique-se de ter o seguinte.

  • A Linux machine – This guide uses Ubuntu 20.04.
  • Java 11+ e Jenkins instalados em sua máquina Linux .
  • Gerir para integrar o Jenkins com repositórios Git.
  • Pipeline: Tarefa para adicionar o conjunto de plugins do Pipeline usado para implementar e integrar pipelines de entrega contínua no Jenkins.

Instalando o Jenkins DSL Plugin

Manter consistência entre trabalhos pode ser difícil, mas o plugin Jenkins DSL resolve esse problema. Como? Permitindo que você defina trabalhos de forma programática, em um arquivo legível por humanos.

Mas antes de criar trabalhos, você precisará instalar o plugin Jenkins DLS primeiro:

1. SSH para o seu servidor Jenkins e execute o seguinte comando para verificar se você tem a versão necessária do Java instalada e o serviço Jenkins está em execução.

java -version && systemctl status jenkins

Você está pronto para instalar o plugin Jenkins DSL se vir uma saída semelhante à abaixo.

Checking Java version and Jenkins status

2. Em seguida, abra seu navegador da web favorito e navegue até http://seu_endereço_ip_do_servidor:8080/pluginManager/available. Substitua seu_endereço_ip_do_servidor:8080 pelo endereço IP real e número da porta do seu servidor Jenkins.

3. Por último, instale o Plugin DSL do Jenkins com o seguinte:

  • Como mostrado abaixo, digite Job DSL na caixa de pesquisa no canto superior direito.

Se você já tiver o plugin Job DSL instalado e atualizado a partir de uma versão mais antiga, os scripts Job DSL não aparecerão na lista ao procurar por Job DSL. Você pode navegar até http://seu_endereço_ip_do_servidor:8080/pluginManager/installed para verificar se o plugin Job DSL está lá.

  • Marque a caixa ao lado da opção Job DSL.
  • Clique em Instalar sem reiniciar na parte inferior para instalar o plugin Jenkins Job DSL.
Installing the Jenkins DSL plugin

A interface do Jenkins mostrará uma barra de progresso enquanto instala o plugin. Uma vez concluída a instalação, você verá as mensagens de sucesso semelhantes abaixo.

Viewing Jenkins DLS Plugin Installation Progress

Criando um Job Seed do Jenkins Usando o Plugin DSL do Jenkins

Agora que você tem o plugin DSL do Jenkins instalado, sinta-se à vontade para criar um job seed do Jenkins. Escreva um script básico do Job DSL e incorpore o script em um job seed do Jenkins. Você criará um job freestyle que imprime uma mensagem ‘Olá Mundo!’ no console do Jenkins.

Para incorporar um script Job DSL em um job seed do Jenkins:

1. Acesse o Painel do Jenkins e clique em Novo Item na barra lateral esquerda. O navegador será redirecionado para uma página onde você pode criar um novo item (passo dois).

Adding a New Item

2. Em seguida, crie um novo item com o seguinte:

  • Insira um nome do item, conforme mostrado abaixo. No entanto, neste tutorial, o nome do item é definido como seed.
  • Selecione Projeto Freestyle (um job de compilação, script ou pipeline repetível) nas opções abaixo.
  • Clique em OK na parte inferior para criar o novo item, e o navegador será redirecionado para a página de configuração do novo item.
Creating seed job

3. Mantenha as configurações padrão para todas as outras seções na página de configuração do novo item.

Role para baixo até a seção Compilação, clique no botão suspenso Adicionar etapa de compilação e selecione Processar Job DSLs. Isso abrirá uma opção onde você fornecerá um script DSL (passo quatro).

Selecting process job DSLs

4. Agora, selecione a opção Usar o script DSL fornecido, conforme mostrado abaixo, e preencha o bloco de código a seguir no campo.

Este bloco de código é uma definição de job freestyle chamada jenkins-job-demo-1 que usa a etapa shell para imprimir uma mensagem “Hello World”. O nome do job é o que aparecerá na interface do Jenkins.

// Sets the API method you want to use (job)
job('jenkins-job-demo-1') { // Sets the name of the job to jenkins-job-demo-1
	// Define what the job does
  steps {
		// Prints a message
    shell('echo Hello World! This job is working!!')
  }
}

Existem muitos métodos disponíveis para criar diferentes tipos de trabalhos no Jenkins, que você pode encontrar na documentação oficial.

Providing the DSL Script

5. Clique em Salvar na parte inferior da página para salvar a configuração do novo item (seed).

Saving Configuration

6. Por fim, vá para o Painel do Jenkins para verificar se o trabalho seed que você criou existe, conforme mostrado abaixo.

Verifying the seed Job

Executando um Trabalho Seed

Você criou e verificou com sucesso o trabalho seed. Mas como saber se o trabalho está funcionando? Você executará o trabalho seed contra o script DSL fornecido na quarta etapa da seção “Criando um Trabalho Seed do Jenkins Usando o Plugin Jenkins DSL”.

1. No Painel do Jenkins, clique no trabalho seed para acessar sua página de configuração.

Navigating into the seed Job Page

2. Em seguida, clique em Construir Agora na barra lateral esquerda para executar o trabalho.

Running the Seed Job

3. Pressione F5 para atualizar a página. Você verá uma nova compilação aparecer na seção Histórico de Compilação com um status de sucesso (marca de seleção verde) na parte inferior esquerda, conforme mostrado abaixo.

Esta saída indica que o trabalho seed foi executado com sucesso, criando um novo trabalho Jenkins (jenkins-job-demo-1) na seção Itens Gerados.

Viewing the See Job Works and Generated a New Job

4. Agora, vá para o Painel do Jenkins. Como mostrado abaixo, você verá o novo trabalho Jenkins (jenkins-job-demo-1) criado pelo trabalho seed.

Clique no trabalho recém-gerado para acessar sua página de configuração.

Verifying See Job’s Generated Job

5. Clique em Construir Agora para executar o trabalho gerado (jenkins-job-demo-1).

Running the Generated Job (jenkins-job-demo-1)

6. Por fim, clique no botão de seta para baixo ao lado da construção bem-sucedida na seção Histórico de Construções, como mostrado abaixo. Escolha Saída do Console no menu de contexto para ver a saída do trabalho.

Accessing Console Output of the Generated Job (jenkins-job-demo-1)

Se o trabalho gerado estiver funcionando, você verá a mensagem dizendo Olá, Mundo! Este trabalho está funcionando!!, como mostrado abaixo, que é a mensagem que você definiu no script Job DSL.

Neste ponto, você criou e executou com sucesso um trabalho Jenkins usando o plugin Job DSL!

Viewing Console Output

Criando um Trabalho para um Pipeline CI/CD Usando o Plugin Jenkins DSL

Até agora, você aprendeu como criar e executar um trabalho Jenkins freestyle usando o plugin Job DSL. Você automatizará a parte não humana do processo de desenvolvimento de software, criando um trabalho Jenkins para um pipeline CI/CD.

Especificamente, você criará um trabalho que obtém código de um repositório GitHub, compila o código e executa os testes unitários.

Para criar um trabalho Jenkins para o pipeline CI/CD:

1. Acesse http://seu_endereco_ip_do_servidor:8080/job/seed/configure em seu navegador para configurar seu trabalho inicial. Substitua seu_endereco_ip_do_servidor pelo endereço IP do seu servidor Jenkins e substitua seed pelo nome do seu trabalho.

2. Em seguida, role para baixo até a seção Build, encontre o campo Scripts DSL e substitua o conteúdo existente pelo código a seguir.

job('jenkins-job-demo-2') {
    steps {
        shell('echo Hello World!')
    }
}

pipelineJob('github-demo') {
    definition {
        cpsScm {
            scm {
                git {
                    remote {
                        github('jenkinsci/pipeline-examples')
                    }
                }
            }
            scriptPath('declarative-examples/simple-examples/environmentInStage.groovy')
        }
    }
}

Clique em Salvar assim que adicionar o código para salvar as alterações.

Providing DSL Script for a Pipeline

3. Clique em Construir Agora na barra lateral esquerda na próxima tela para reexecutar o trabalho de seed, conforme mostrado abaixo. Na seção Histórico de Construção (canto inferior esquerdo), você verá que o trabalho de seed foi executado com sucesso.

Clique na nova construção (#2) para acessar a página de configuração da construção.

Rerunning the seed Job

4. Agora, navegue até a Saída do Console da nova construção. Você verá uma mensagem de Itens Adicionados e o nome do novo trabalho, conforme mostrado abaixo.

Esta saída indica que o novo trabalho de pipeline foi adicionado com sucesso.

Verifying the New Pipeline Job was Added Successfully

5. Volte ao painel do Jenkins e você verá o novo trabalho de pipeline adicionado (jenkins-job-demo-2) à lista de trabalhos. Clique nesse novo trabalho de pipeline para acessar a página de configuração do trabalho.

Verifying the New Jenkins Job Exists

6. Por fim, clique em Construir Agora para executar o novo trabalho de pipeline. Você verá que o trabalho foi executado com sucesso, conforme indicado na seção Histórico de Construção.

Clique na seta suspensa ao lado do trabalho e selecione Saída do Console.

Running the New Jenkins Job

Na Saída do Console abaixo, você pode ver a saída do trabalho, que o Jenkins clonou o repositório com sucesso, compilou o código e executou os testes unitários.

Viewing Console Output of the Pipeline Job

Conclusão

Neste tutorial, você aprendeu como criar trabalhos do Jenkins com o plugin Job DSL. Você explorou aprimoramentos no desenvolvimento de aplicativos criando um pipeline CI/CD com o plugin Jenkins Pipeline.

O plugin Job DSL e o plugin Jenkins Pipeline funcionam lado a lado para oferecer uma maneira poderosa de gerenciar trabalhos do Jenkins e pipelines de construção. Por que não configurar esses plugins para criar pipelines de construção sofisticados que acionam automaticamente os trabalhos do Jenkins como parte do processo de construção?

Source:
https://adamtheautomator.com/jenkins-dsl/