Como testar Jenkinsfile localmente

Como testar Jenkinsfile localmente

Quando você começa a criar pipelines Jenkin usando Jenkinsfile declarativo, é fácil cometer erros na sua definição de sintaxe.

É, portanto, uma boa prática verificar e verificar seus Jenkinsfiles antes de comprometê -los com seus repositórios. Isso garante que você não acabe com muitas compilações falhadas em seu servidor Jenkins.

Este tutorial mostrará vários métodos e técnicas que você pode usar para fins e verificar seu Jenkinsfile antes de executá -los no servidor.

O Jenkinsfile

O Jenkinsfile é uma ferramenta poderosa que permite especificar as instruções para suas compilações em uma sintaxe simples e fácil de entender. Existem dois métodos principais para criar um Jenkinsfile:

    1. Usando sintaxe declarativa
    2. Usando scripts Groovy

Este tutorial se concentrará em um artigo escrito em sintaxe declarativa, pois é muito mais fácil de entender e usar.

A seguir, mostra a sintaxe de um jenkinsfile declarativo simples.

def Msg = "Este é um texto personalizado"
Pipeline
agente qualquer
estágios
Stage ('Hello')
passos
roteiro
msg = "agora a string é diferente!!"

eco "$ msg"




Não iremos analisar a estrutura do arquivo ou o que cada bloco no arquivo acima representa. Em vez disso, você pode verificar nosso tutorial de Jenkins para explorar os vários princípios básicos de Jenkins, como a Declaração Variável, os estágios de Jenkins, os estágios de Jenkins e mais.

O que é um linhagem e por que é importante?

LING refere -se ao processo de verificação do código -fonte para possíveis problemas ou erros. Na maioria dos casos, geralmente realizamos o linha de código por meio de uma ferramenta dedicada chamada Linter.

Um linnter de código pegará um código -fonte de entrada, analisá -lo e garantirá que não haja erros em potencial no arquivo. Também validará a sintaxe e os problemas de formatação definidos em um determinado idioma.

Alguns problemas comuns que os linhtos podem detectar incluem erros de sintaxe, problemas de formatação e possíveis problemas lógicos.

Aqui é onde está o problema quando se trata de Jenkinsfiles. Depois de editar um Jenkinsfile, você deve cometer as mudanças e empurrar as mudanças no repositório.

No entanto, Jenkins está configurado para executar uma construção toda vez que uma mudança no Jenkinsfile é detectada. Portanto, se você cometer algum erro no arquivo e se comprometer sem testar, Jenkins tentará construir o projeto e falhará devido aos erros no arquivo de pipeline.

Muitas vezes, você encontrará esses erros levam a construções simultâneas lentas, ou mesmo uma infinidade de começos do Git para corrigir erros de sintaxe.

Para evitar esses erros, é bom usar um linhador para verificar se tudo está funcionando antes de se comprometer.

Como fasgar um Jenkinsfile

Vamos agora discutir como podemos fiar o Jenkinfile localmente antes de cometer.

Método 1 - Usando o linhador declarativo de Jenkins

O primeiro método que podemos usar para fiar nosso Jenkinsfile antes de comprometer é usar a linha de comando.

Faça login no painel Jenkins - Gerenciar Jenkins - Jenkins CLI e Donwload The Jenkins CLI Utility.

Você encontrará o link para baixar a CLI da Jenkins e como executar o comando na primeira seção.


Depois de baixado, navegue até a localização do Jenkins-cli.Jar arquivo e execute o comando fornecido acima.

O comando deve listar possíveis comandos que você pode executar no servidor, como mostrado:

Configurando uma amostra Jenkinsfile

A próxima etapa é configurar uma amostra Jenkinsfile que precisamos fazer fios e testar a validade. Para fins de demonstração, usaremos um script do Hello simples do Hello, conforme fornecido abaixo:

def Msg = "Este é um texto personalizado"
Pipeline
agente qualquer
estágios
Stage ('Hello')
passos
roteiro
msg = "agora a string é diferente!!"

eco $ msg




Você pode salvar o Jenkinsfile em qualquer local do seu sistema de arquivos.

Linhando um Jenkinsfile da linha de comando

Para fazer um jenkinsfile da linha de comando, podemos usar o comando:

$ java -Jar Jenkins -cli.jar -s jenkins_url -websocket declarativo -linter < Jenkinsfile


Onde o Jenkins_url é o endereço do seu controlador Jenkins.

Se o seu servidor Jenkins precisar de autenticação, use a opção -auth seguida pelo nome de usuário e senha como nome de usuário: senha.

Um exemplo de sintaxe é mostrado abaixo:

$ java -Jar Jenkins -cli.jar -s jenkins_url -auth nome de usuário: senha -websocket declarativo -linter < Jenkinsfile


Vamos demonstrar a saída do linhador quando passarmos o Jenkinsfile acima.

$ java -Jar Jenkins -cli.JAR -S < .\Jenkinsfile


Depois de executar o comando acima, o linhador analisará o Jenkinsfile e produzirá quaisquer problemas em potencial. Como nosso arquivo tem erros, o linhador nos dirá por que e possíveis correções, conforme demonstrado abaixo.


Nesse caso, o Linnter nos diz que precisamos incluir o nome da variável no bloco de eco com aspas.

Podemos ir em frente e consertar nosso arquivo.

def Msg = "Este é um texto personalizado"
Pipeline
agente qualquer
estágios
Stage ('Hello')
passos
roteiro
msg = "agora a string é diferente!!"

eco "$ msg"




Uma vez corrigido, podemos executar novamente nosso comando linter:

$ java -Jar Jenkins -cli.JAR -S < .\Jenkinsfile


Como não temos nenhum erro em nosso Jenkinsfile, o comando retornará uma mensagem como mostrado:

Jenkinsfile validou com sucesso.


E testamos e verificamos com sucesso nosso Jenkinsfile está pronto para comprometer.

Método 2 - Adicionando o linter Jenkinsfile ao seu editor

O segundo método comum de testar e verificar seu Jenkinsfile é adicionando o plugin Jenkins Linter ao seu editor.

Jenkins fornece Linter para:

    1. Editor Eclipse
    2. Código VisualStudio
    3. Neovim
    4. Átomo
    5. Editor de texto sublime

Esta seção demonstrará como usar o linhador Jenkinsfile no Código do Visual Studio.

No Código do Visual Studio, pressione Ctrl + Shift + K para abrir o menu de extensões. Pesquise "Jenkins Pipeline Liner".

Selecione a extensão “Jenkins Pipeline Linter Connector” e clique em Instalar.


Depois de instalado, abra seu Jenkinsfile no Código do Visual Studio e pressione Ctrl + Shift + P para abrir a paleta de comando.

Digite o comando "Validar Jenkinsfile" e pressione Enter para executar.

Isso irá solicitar a você o URL do Linter Jenkins.

https: /// pipeline-model-converter/validate

Digite o link acima, como mostrado no exemplo abaixo:

http: // localhost: 8080/pipeline-model-converter/validate


Se o seu servidor exigir autenticação, abra as configurações de código do Visual Studio e pesquise "Jenkins".

Defina o nome de usuário e a senha Jenkins.


Depois de executar o comando "Validar Jenkinsfile", a extensão analisará seu Jenkinsfile e mostrará possíveis problemas.

Conclusão

Você aprendeu a usar o linte da CLI da Jenkins para testar e verificar seu Jenkinsfile em sua máquina antes de cometê -los. Você também aprendeu a adicionar o Jenkins Linter ao código do Visual Studio para testar seu Jenkinsfile do seu editor.