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