twitterfacebookgoogle pluslinkedinrss feedemail

quinta-feira, 23 de agosto de 2018

Jenkins - Configurar "Seed Job"

Jenkins é uma plataforma poderosa para automatizar tarefas.
Através de seus diversos plugins, complementamos as funcionalidades e escopo.
Oferecendo tantas facilidades, o Jenkins livra o desenvolvedor das atividades repetitivas.
Vou apresentar neste artigo o plugin "job-dsl-plugin", que é responsável pela implementação do "seed-job".

O que é "job-dsl-plugin"?
É um plugin que implementa a funcionalidade do desenvolvedor descrever "jobs" usando Groovy.
Na prática, podemos criar um arquivo com diversos comandos, que serão interpretados no Jenkins com o objetivo de criar e configurar um ou vários  "Jobs".
Assim, evitando o trabalho de utilizar a UI do Jenkins para configurar os Jobs.

Qual o benefício de utilizar o plugin?
Quando operamos o Jenkins para criar o Job, entramos na interface do usuário, criando um novo item, adicionando parâmetros, adicionando "steps", tudo isso manualmente na UI.
Quando o número de Jobs cresce, começa a ficar difícil a manutenção destes Jobs utilizando a UI. Imagina se tivermos que fazer uma alteração em todos os jobs, teríamos que entrar um por um.
Em um cenário que o servidor do Jenkins sofre um problema, perde informações dos Jobs ou simplesmente precisamos replicar jobs parecidos para outros sistemas, utilizando o "job-dsl-plugin" fica mais fácil.
Podemos versionar os arquivos de configuração dos Jobs em Groovy no Git, por exemplo. Assim, podemos reverter alterações nos Jobs de uma forma fácil.
A grande vantagem é que podemos programar nossos jobs, ao invés de ficar clicando em um monte de tela.

Instalar o Plugin
Na opção "Manage Jenkins",  "Plugin Manager" clicar na Aba "Installed".
Procurar pelo plugin "Job DSL".
Caso não tenha instalado, entrar na aba "Available" e buscar por "Job Dsl".

Configurando "Seed-Job"
O "Seed-Job" é um job que irá fazer um clone de um repositório remoto, interpretrar os arquivos DSL e gerar outros Jobs.
O primeiro passo é termos um repositório no Git, destinado a versionar os arquivos DSL. 
Na home do Jenkins, escolhemos a opção "New Item".
Depois defina o nome do Job, escolha a opção "Freestyle Project".


Na próxima tela, buscar a opção de "Build", no combo de "Add Build step", selecionar a opção "Process Job DSLs".
No campo "DSL Scripts", incluir a opção de "*.dsl", definindo que iremos pegar todos arquivos com extensão dsl.


Na seção de "Source Code Management", preencher informações do repositório. No caso do Git, colocar a URI do repositório e o certificado do usuário que foi registrado no Jenkins.
Com estas informações, a ferramenta irá fazer o clone do repositório com os arquivos "*.dsl" necessários para gerar outros jobs.


 Salvar este Job, que posteriormente iremos executar ele.

Hello World - DSL

Os scripts em DSL são programados utilizando Groovy.
Para exemplo do nosso  "Seed Job", crie um arquivo *.dsl no seu repositório de arquivos, com o conteúdo abaixo:
job('JobEcho-Teste'){
        steps{
                shell('echo "Teste - Ola Mundo!"')
        }
}

Versionar o arquivo e executar o "git push" para o servidor remoto do Git. 
Clicando no Job de Seed, iremos executar um build.
O Job de Seed irá executar e criar um novo job, chamado  "JobEcho-Teste", que foi configurado no arquivo DSL de exemplo.


Entrando no JobEcho-Teste, executamos o build desse job. Se ocorreu tudo certo, o build deverá estar verde.

Depois entramos no build do job e clicamos em "Console Output".

No console vemos o retorno de nosso "Olá Mundo".
Um outro exemplo simples, para ilustrar o funcionamento do DSL.
O script abaixo, cria um job que faz clone de um repositório no GitHub.
job('NomeJob') {
    scm {
        git {
            remote {
                github('account/repo', 'ssh')
                credentials('CredencialCadastrada')
                url('git@github.com:ROMERO/URIGitHub.git')
            }
        }
    }
}

Existem diversos comandos DSL que ajudam a automatizar a criação de Jobs.
Uma boa referência para os comandos é no link abaixo:

Outros links interessantes:

Nenhum comentário:

Postar um comentário

 

Sobre o Blog

Neste blog irei compartilhar as minhas experiências e observações. Os temas serão variados, mas com ênfase em tecnologia. Inscreva-se nos nossos canais para receber atualizações.