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"?
Caso não tenha instalado, entrar na aba "Available" e buscar por "Job Dsl".
Na próxima tela, buscar a opção de "Build", no combo de "Add Build step", selecionar a opção "Process Job DSLs".
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.
Salvar este Job, que posteriormente iremos executar ele.
Versionar o arquivo e executar o "git push" para o servidor remoto do Git.
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".
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?
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".
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".
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.
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.
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