Teste de Integração Contínua de Atualizações de RPM

4

Lançamos software em linux baseado em RPM. Recebemos muitos pacotes de diferentes equipes, algumas fora da nossa unidade de negócios, que devem ser atualizadas corretamente (no futuro, queremos verificar se as dependências estão corretas). Recentemente, fomos picados por um bug na atualização de um pacote entregue de fora de nossa unidade de negócios. Chegou a hora de começar a tentar automatizar os testes para esse tipo de coisa.

O tipo de coisa que eu tinha em mente era assumir que a instalação é boa (isso geralmente seria capturado no tempo de teste funcional), então verificar se uma atualização com scripts pré / pós modifica arquivos da mesma maneira que a instalação. Se não, então sinalize para revisão.

Especificamente, queremos verificar atualizações, casos de canto como atualizações de kernel, instalações chroot onde o kernel em execução pode nem estar disponível no chroot, etc.

Minha pergunta é: software que faz esse tipo de coisa já existe? Eu não tive muita sorte em minha busca.

Esse processo automatizado também seria apoiado por diretrizes de embalagem, é claro, mas como alguns dos nossos RPMs vêm de fora da nossa organização, ainda assim gostaríamos que esse substituto nos desse garantias no futuro.

    
por AlexB 12.06.2014 / 13:37

1 resposta

2

Você fez uma pergunta geral, acho que pode haver várias respostas possíveis. Uma opção que eu recomendaria por experiência pessoal é Jenkins.

O Jenkins é um bom conjunto de ferramentas de integração contínua. link É uma ferramenta bastante flexível e você pode obter uma boa variedade de plugins diferentes. A instalação / configuração é muito fácil. Você pode instalar na própria máquina linux / windows / ... Isso lhe dá poder e controle sobre seus trabalhos automatizados.

Você pode usar o Jenkins para várias tarefas diferentes que deseja automatizar.  * construções regulares e execuções de teste    (boa seleção de plugins de relatórios de erros / gerenciamento de build e build / teste)  * fazer backups regulares, executando testes regulares ou acionados  * checar as atualizações do código fonte e manter as áreas de trabalho atualizadas / limpas  * usando o plugin ssh para executar tarefas automatizadas em máquinas externas

No passado, usei-o para tarefas em todo o projeto e para tarefas individuais do desenvolvedor.

Você automatizaria sua configuração de teste, a instalação do rpm e, em seguida, testaria como um script ou conjunto de scripts. Jenkins permitiria que você gerencie os trabalhos usando a interface web. Status do trabalho e relatórios de trabalho / teste navegáveis usando a interface web. Erros ou relatórios enviados em e-mails ou qualquer outra coisa.

Leitura adicional. . .

Entrega contínua: link link Eu usei controle de cruzeiro e buildbot no passado, mas acho que eles são mais limitados do que Jankins.

Esta entrada de blog parece bastante relevante para sua pergunta: link Jenkins + uma gama de outras ferramentas

    
por 12.06.2014 / 14:54