Testando trabalhos e pipelines Jenkins

10

Atualmente, temos um número razoável de trabalhos e pipeline da Jenkins para construções, testes, implantações e outras atividades automatizadas.

Sempre que alteramos ou adicionamos um novo trabalho, apenas o testamos manualmente - por exemplo, percorrendo o "caminho feliz" (quando o trabalho é realizado sem erros), testando alguns casos de teste negativos quando um trabalho ou pipeline falha - verificando o código de erro e notificações.

Essa abordagem claramente não é confiável e não escala bem. Como podemos melhorar esse processo? Existe um lugar para a automação de testes quando se trata de verificar como os trabalhos e os pipelines do Jenkins funcionam?

alecxe
fonte
5
bem-vindo aos devops de alto nível - quem testa o teste? Eu acho que você pode começar com um ambiente de sandbox para replicar as configurações gerais do sistema e evoluí-lo para concluir a Configuração conforme a codificação; isso inclui configurações de trabalho mantidas por código.
Peter Muryshkin

Respostas:

10

Estou postando isso aqui não porque avalio essas soluções (na verdade, nunca as experimentei), mas apenas porque elas são uma resposta potencial à sua pergunta:

Você pode começar com o JenkinsPipelineUnit , uma estrutura de teste de unidade para scripts do Pipeline.

Há também um projeto chamado jenkinsfile-runner que executa seu arquivo Jenkins em uma instância Jenkins transitória e sem cabeça. Supostamente, isso pode ser usado para testes de integração das bibliotecas compartilhadas Jenkinsfiles e Pipeline. No entanto, a partir do verão de 2018, não havia documentação sobre como usar essa ferramenta para testes de integração, e não consegui encontrar nenhum exemplo de alguém usando essa ferramenta "em estado selvagem".

Consulte também o relatório de bug relacionado no Jenkins JIRA: "Estrutura de teste para o Jenkinsfile" .

jayhendren
fonte