Jenkins Tutorial de Pipeline: Como Criar JenkinsArquivo (Exemplo)

โšก Resumo Inteligente

Jenkins Os pipelines vinculam tarefas de compilaรงรฃo, teste e implantaรงรฃo em uma sequรชncia ordenada que รฉ executada como cรณdigo. JenkinsO arquivo enviado ao lado do projeto transforma essa sequรชncia em uma definiรงรฃo de entrega versionada e passรญvel de revisรฃo.

  • ๐Ÿ”˜ Pipeline: Um conjunto de eventos interligados onde cada tarefa depende da anterior.
  • โ˜‘๏ธ Jenkinsarquivo: Um arquivo de texto em uma linguagem especรญfica do domรญnio, contendo cada etapa do pipeline.
  • โœ… Duas sintaxes: O Declarative oferece uma hierarquia fixa; estrutura de negociaรงรตes com script para Groovy controlar.
  • ๐Ÿงช Quatro termos: Pipeline, nรณ, estรกgio e etapa nomeiam o fluxo, a mรกquina, a fase e a tarefa.
  • ๐Ÿ› ๏ธ Caminho de configuraรงรฃo: Instale o plugin de pipeline de compilaรงรฃo, adicione uma visualizaรงรฃo de pipeline, encadeie os jobs e execute-o.
  • ๐Ÿ“Œ Prรกticas: Mantenha o trabalho material em um bloco de nรณ, o trabalho nรฃo relacionado ร  configuraรงรฃo em um estรกgio e envolva as entradas em timeouts.

Jenkins pipeline definido como cรณdigo em um JenkinsEnvie o

O que รฉ a Jenkins Gasoduto?

Jenkins Pipeline รฉ uma combinaรงรฃo de plugins que suporta a integraรงรฃo e implementaรงรฃo de canais de entrega contรญnuaร‰ um servidor de automaรงรฃo extensรญvel para a criaรงรฃo de pipelines de entrega simples e complexos como cรณdigo, atravรฉs da DSL de pipeline. Um pipeline รฉ um grupo de eventos interligados em uma sequรชncia.

O que sรฃo pipelines de entrega contรญnua? Como funciona?

Em um artigo do Jenkins Em um pipeline, cada tarefa ou evento tem algum tipo de dependรชncia em pelo menos um ou mais eventos, como mostra o diagrama abaixo.

O pipeline de entrega contรญnua passa pelas etapas de construรงรฃo, implantaรงรฃo, teste e lanรงamento. Jenkins
Trabalho de Jenkins Pipelines de Entrega Contรญnua

A imagem acima representa um pipeline de entrega contรญnua em Jenkins, composto por estados chamados build, deploy, test e release. Cada estado possui seus prรณprios eventos, que sรฃo executados em sequรชncia.

Um pipeline de entrega contรญnua automatiza esse processo, conduzindo o software do controle de versรฃo ร  versรฃo final por meio de uma sequรชncia repetรญvel de compilaรงรตes. ensaio e fases de implantaรงรฃo.

O que รฉ uma JenkinsArquivo?

Jenkins Os pipelines podem ser definidos em um arquivo de texto chamado JenkinsArquivo. Ele expressa o pipeline como cรณdigo em uma linguagem de domรญnio especรญfico (DSL) e contรฉm cada etapa necessรกria para executar o pipeline.

Os benefรญcios do uso JenkinsOs arquivos sรฃo:

  • completa JenkinsO File pode criar pipelines para cada branch e executar pull requests.
  • Vocรช pode revisar o seu Jenkins cรณdigo no pipeline
  • Vocรช pode auditar seu Jenkins oleoduto
  • Esta รฉ a fonte รบnica do seu pipeline e pode ser modificada por vรกrios usuรกrios.

Um pipeline pode ser definido em Jenkins interface web ou em um JenkinsArquivo enviado para o controle de versรฃo. Um arquivo declarativo mรญnimo tem um formato fixo โ€” um bloco de pipeline, um agente e estรกgios, contendo um estรกgio por fase.

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying'
            }
        }
    }
}

Salvar o arquivo na raiz do repositรณrio atualiza a versรฃo do pipeline com o cรณdigo.

Sintaxe de pipeline declarativa versus sintaxe de pipeline com script

Existem dois tipos de Jenkins Sintaxe de pipeline usada para definir seu JenkinsArquivo.

  1. Declarativo
  2. Com script

Declarativo

A sintaxe declarativa de pipeline รฉ o caminho mais fรกcil. Ela segue uma hierarquia predefinida e ainda controla todos os aspectos da execuรงรฃo do pipeline de maneira direta.

Com script

Com script Jenkins O oleoduto funciona no Jenkins controlador por meio de um executor leve, usando poucos recursos para traduzir o pipeline em comandos atรดmicos. Os dois sรฃo escritos de maneiras bem diferentes, entรฃo escolha um por vez. JenkinsArquivo.

โš ๏ธ Observaรงรฃo: Jenkins agora chama o dominar da controlador.

Por que usar Jenkins Gasoduto?

Jenkins รฉ um aberto servidor de integraรงรฃo contรญnua que automatiza processos de desenvolvimento de softwareVocรช pode criar vรกrios empregos de automaรงรฃo A partir dos seus casos de uso, execute-os como um รบnico pipeline.

Aqui estรฃo os motivos pelos quais vocรช deve usar Jenkins encanamento:

  • O pipeline รฉ implementado como cรณdigo, permitindo que vรกrios usuรกrios editem e executem o processo.
  • Os pipelines sรฃo robustos: se o servidor reiniciar inesperadamente, o pipeline รฉ retomado automaticamente.
  • Vocรช pode pausar um pipeline e mantรช-lo em execuรงรฃo atรฉ que o usuรกrio forneรงa uma entrada.
  • Os pipelines dรฃo suporte a grandes projetos: execute vรกrias tarefas e atรฉ mesmo use pipelines em um loop.

Jenkins Pipeline Concepts

Quatro termos se repetem em cada Jenkinsarquivo:

INVERNODescriรงรฃo
PipelineUm conjunto de instruรงรตes escritas em cรณdigo que abrange todo o processo de compilaรงรฃo para entrega contรญnua. Com um pipeline, vocรช pode compilar, testar e entregar a aplicaรงรฃo.
Node A mรกquina na qual Jenkins Uma execuรงรฃo รฉ chamada de nรณ. Um bloco de nรณ รฉ usado principalmente na sintaxe de pipeline com script.
EtapaUm bloco de estรกgio contรฉm uma sรฉrie de etapas. Os processos de construรงรฃo, teste e implantaรงรฃo se unem em um estรกgio, que tambรฉm รฉ o que a visualizaรงรฃo do pipeline exibe.
PassoUma รบnica tarefa que executa um processo especรญfico em um tempo definido. Um pipeline รฉ uma sรฉrie de etapas.

Instale o Plugin Build Pipeline em Jenkins

O plugin de pipeline de compilaรงรฃo cria uma visualizaรงรฃo do fluxo de tarefas de entrada e saรญda e adiciona gatilhos de intervenรงรฃo manual.

Instale-o da seguinte forma:

Passo 1) As configuraรงรตes do plugin podem ser encontradas em Gerenciar Jenkins > Gerenciar plugins, mostrado abaixo.

โš ๏ธ Nota de versรฃo: atual Jenkins As versรตes rotulam esta tela. Gerenciar Jenkins โ†’ Plugins; as abas se comportam conforme descrito aqui.

Pรกgina Gerenciar Plugins em Jenkins onde ficam as configuraรงรตes do plugin do pipeline de compilaรงรฃo

Se vocรช jรก instalou o plugin, ele serรก mostrado na guia instalado.

Aba instalada do Jenkins O gerenciador de plugins lista o plugin do pipeline de compilaรงรฃo.

Passo 2) Se o plugin ainda nรฃo estiver instalado, ele aparecerรก na aba Disponรญvel.

Com o plugin instalado:

Como Criar Jenkins Pipeline

Assim que vocรช estiver conectado ao seu Jenkins painel de instrumentos:

Passo 1) Clique no botรฃo โ€œ+โ€ no lado esquerdo da sua tela. Jenkins painel para criar um pipeline.

Botรฃo de mais no Jenkins painel usado para adicionar uma nova visualizaรงรฃo

Passo 2) Preencha a nova caixa de diรกlogo de visualizaรงรฃo:

  1. Dรช um nome ร  visualizaรงรฃo do pipeline. Vamos chamรก-la de โ€œGuru99 Pipelineโ€ para esta demonstraรงรฃo.
  2. Selecione "Criar uma visualizaรงรฃo de pipeline" em opรงรตes.
  3. Clique em OK, como mostrado abaixo.

Nova caixa de diรกlogo de visualizaรงรฃo com o nome da visualizaรงรฃo do pipeline inserido e a opรงรฃo "Criar uma visualizaรงรฃo do pipeline" selecionada.

Passo 3) A prรณxima pรกgina solicita mais detalhes de configuraรงรฃo. Aceite as configuraรงรตes padrรฃo e certifique-se de escolher a primeira opรงรฃo nas configuraรงรตes.

Clique em Aplicar e depois em OK.

Crie uma pรกgina de configuraรงรฃo da visualizaรงรฃo do pipeline com as configuraรงรตes padrรฃo e o primeiro trabalho selecionado.

Em seguida, a visualizaรงรฃo de exemplo do pipeline do seu item รฉ exibida:

Amostra Jenkins Visualizaรงรฃo do pipeline de construรงรฃo criada para o Guru99 Item de tubulaรงรฃo

Executando uma compilaรงรฃo de pipeline

Passo 1) Primeiro, encadeie suas tarefas: abra sua primeira tarefa e clique em configurar.

Configure o link no primeiro Jenkins trabalho usado para iniciar uma cadeia de empregos

Passo 2) Agora, em Gatilhos de Compilaรงรฃo, marque a opรงรฃo Compilar apรณs a compilaรงรฃo de outros projetos.

Na seรงรฃo "Gatilhos de compilaรงรฃo", a opรงรฃo "Compilar apรณs a compilaรงรฃo de outros projetos" estรก marcada.

Agora existe uma rede que reรบne todas as suas necessidades de trabalho.

Passo 3) Instale o plugin de visualizaรงรฃo Build Pipeline, caso ainda nรฃo o tenha instalado.

Passo 4) No Jenkins No painel, crie uma visualizaรงรฃo com o botรฃo โ€œ+โ€, selecione a opรงรฃo Visualizaรงรฃo do Pipeline de Construรงรฃo e clique em OK.

Nova caixa de diรกlogo de visualizaรงรฃo com a opรงรฃo Visualizaรงรฃo do Pipeline de Construรงรฃo selecionada

Passo 5) Na configuraรงรฃo da visualizaรงรฃo do Pipeline, localize Fluxo do Pipeline.

Em Fluxo do Pipeline, selecione a tarefa inicial a ser executada โ€” a tarefa encadeada ร s outras nas Etapas 1 e 2.

Configuraรงรตes de fluxo de tubulaรงรฃo com Guru99. O Projeto 1 foi escolhido como o trabalho inicial.

GuruO Projeto 1 (99) รฉ selecionado aqui como a tarefa inicial, portanto, as tarefas encadeadas sรฃo executadas uma apรณs a outra.

Enquanto o oleoduto estรก em funcionamento, sรญmbolos vermelhos e verdes indicam seu estado: vermelho significa falha, verde significa sucesso.

Neste exemplo, o botรฃo estรก verde, o que significa que o processo foi bem-sucedido.

Botรฃo verde indicando sucesso. Jenkins execuรงรฃo do pipeline

Corrida Jenkins oleoduto

Clique em Executar para executar o programa. Jenkins pipeline. Vai ficar mais ou menos assim:

Botรฃo Executar no Jenkins construรงรฃo da visualizaรงรฃo do pipeline

O exemplo acima cria um programa simples "helloworld.java". Projetos reais encadeiam fluxos de trabalho muito mais complexos, como mostra a visรฃo completa abaixo.

Efetuado Jenkins Visรฃo do pipeline de construรงรฃo mostrando cada tarefa encadeada em sequรชncia.

โš ๏ธ Nota de versรฃo: O plugin de visualizaรงรฃo do Build Pipeline รฉ a maneira tradicional de visualizar jobs freestyle encadeados; a prรกtica atual define o mesmo fluxo em um JenkinsArquivo. Azul Ocean Nรฃo estรก mais aprimorado.

Melhores Prรกticas usando Jenkins Pipeline

Sete hรกbitos mantรชm um pipeline em ordem:

  • Use o original Jenkins Pipeline
  • Desenvolva seu pipeline como cรณdigo
  • Qualquer trabalho que nรฃo seja de configuraรงรฃo no pipeline deve ocorrer dentro de um bloco de estรกgio.
  • Qualquer trabalho material em um pipeline deve ser executado dentro de um bloco de nรณs.
  • Nรฃo utilize entrada dentro de um bloco de nรณ.
  • Nunca defina variรกveis โ€‹โ€‹de ambiente com variรกvel global env
  • Envolva suas entradas em um tempo limite

Perguntas Frequentes

Ele examina um repositรณrio, encontrando todos os branches que contรชm um JenkinsO arquivo cria um trabalho para cada ramificaรงรฃo. O comportamento da ramificaรงรฃo รฉ definido pela variรกvel BRANCH_NAME nesse arquivo.

Armazene-os no Jenkins As credenciais sรฃo armazenadas e lidas com a funรงรฃo auxiliar `credentials()` em um bloco de ambiente. O valor รฉ injetado em tempo de execuรงรฃo e mascarado no log, portanto, nenhuma senha fica armazenada no arquivo.

O processo รฉ executado apรณs a conclusรฃo das etapas, independentemente do resultado. Condiรงรตes como "sempre", "sucesso", "falha" e "instรกvel" permitem que um รบnico arquivo publique relatรณrios, arquive artefatos e notifique a equipe sem repetiรงรฃo.

Sim. Um bloco paralelo dentro de um estรกgio executa seus ramos simultaneamente, o que รฉ adequado para conjuntos de testes distribuรญdos entre navegadores. Cada ramo precisa de um agente, portanto, o tempo de execuรงรฃo diminui apenas quando os executores estรฃo livres.

Envie o cรณdigo para o endpoint do linter declarativo ou abra o Replay em uma execuรงรฃo anterior, edite o script e execute-o sem modificar o repositรณrio. Ambos os mรฉtodos detectam erros de sintaxe antecipadamente.

Um assistente de IA pode ler um longo log do console e agrupar pilhas de chamadas repetidas. trace nomeie a etapa em que a falha comeรงou. Tambรฉm sinaliza testes intermitentes. Confirme cada sugestรฃo com o log bruto.

Sim. Travas deslizantes portรกteis Copilot Elabora um esqueleto declarativo a partir de um comentรกrio que nomeia os estรกgios e completa etapas como finalizaรงรฃo da compra e comandos do shell. RevVeja os rรณtulos do agente, as credenciais e os tempos limite, que as sugestรตes muitas vezes adivinham incorretamente.

Quando o mesmo bloco aparece em trรชs ou mais JenkinsArquivos. Uma biblioteca compartilhada mantรฉm essa lรณgica em um repositรณrio versionado, de forma que uma correรงรฃo chegue a todos os projetos e cada arquivo mantenha apenas seus prรณprios estรกgios.

Resuma esta postagem com: