Use Stash em Jenkins

Use Stash em Jenkins

Neste tutorial, aprenderemos como podemos usar as etapas do Jenkins Stash em um oleoduto para copiar ou mover arquivos de um controlador Jenkins para outro host.

Ao trabalhar em Jenkins, você pode encontrar um cenário em que um trabalho produz arquivos e diretórios específicos. No entanto, como os arquivos produzidos e localizados no agente em que o trabalho foi executado, precisamos descobrir uma maneira de transferir os arquivos para um host diferente.

O que é Stosh em Jenkins?

A etapa de estoque em Jenkins nos permite salvar arquivos e diretórios para uso tardio em qualquer nó ou espaço de trabalho conectado ao controlador. Por padrão, Jenkins descartará os arquivos escondidos assim que o pipeline for concluído.

É bom lembrar que os arquivos escondidos não estão disponíveis em outros oleodutos ou empregos dentro de um controlador Jenkins. Se você deseja transferir arquivos entre trabalhos ou pipelines, use o módulo ArchiveArtIfacts.

Outra coisa a ter em mente sobre o passo de estoque em Jenkins é que ele é melhor reservado para arquivos pequenos. Isso ocorre porque os arquivos escondidos estão disponíveis em formato alcatrão arquivado e compactado, que pode ser intensivo em recursos para arquivos acima de 100 MB. Para arquivos grandes, considere usar um plugin de gerenciador de espaço de trabalho externo.

Jenkins Stash Sintaxe

A seguir, mostra a sintaxe da etapa de estoque de Jenkins. A etapa aceita os seguintes parâmetros:

  1. Nome: String - Este é um tipo de string que define o nome do estoque. Este deve ser um identificador simples que faz referência ao trabalho de destino, embora não seja necessário.
  2. Allowepty: booleano - O allowepty é uma opção booleana que define se o estoque deve ser criado mesmo que nenhum arquivo esteja disponível. Por padrão, esta opção está definida como falsa e Jenkins retornará um erro se nenhum arquivo estiver disponível para estoque.
  3. exclua: string - Este parâmetro opcional permite definir o conjunto de arquivos e diretórios que você deseja excluir do Stash. Use uma lista separada por vírgula para especificar os arquivos que você deseja excluir. Para selecionar um padrão, use a lista de padrões de formigas.
  4. Inclui: string - Semelhante ao padrão de exclusão, mas define os arquivos a serem incluídos no Stash.
  5. UsoFaultExCludes: booleano - Este parâmetro booleano permite que você use o padrão exclui da Ant. Por padrão, o valor é definido como true.

Exemplo de demonstração

Usaremos um controlador Jenkins conectado ao Debian 11 e Debian 10 Agents para demonstrar como podemos usar a etapa Stash em Jenkins.

Em seguida, usaremos um Jenkinsfile, como mostrado abaixo:

Pipeline
Agente Nenhum
estágios
estágio ('start')
Agente Label 'Debian11'
passos
sh "'
Toque em amostra.sh
mkdir -p dir
toque dir/sample_nested.sh
toque dir/sample_nested2.sh
'"
Stash (Nome: 'SampleSTash')


Stage ('Verifique os arquivos')
Agente Label 'Debian10'
passos
solte 'samplestash'
sh 'árvore'



O exemplo de exemplo acima começa criando arquivos de amostra para fins de demonstração. Em seguida, usamos a etapa de esconderijo para criar um samplestash com todos os arquivos gerados. Finalmente, soltamos os arquivos no agente de destino usando a etapa Unshet.

Depois de executar o pipeline, devemos obter uma saída como mostrado:

A partir da saída acima, podemos ver que os arquivos foram escondidos e não -desbotados no nó Debian11 e sem seleção no Debian 10 Node.

Conclusão

Neste artigo, você aprendeu o básico de trabalhar com os passos de Stash and Unshet em Jenkins.