Sistema de integração contínua para um Python Codebase

votos
48

Estou começando a trabalhar em um projeto hobby com um Python base de código e eu gostaria de criar alguma forma de integração contínua (ou seja, executar uma bateria de estudos de casos cada vez que um check-in é feito e enviar nag e-mails aos responsáveis pessoas quando falham os testes) semelhantes a CruiseControl ou TeamCity .

Eu percebo que eu poderia fazer isso com ganchos na maioria VCSes , mas que requer que os testes executados na mesma máquina que o servidor de controle de versão, que não é tão elegante como eu gostaria. Alguém tem alguma sugestão para um sistema pequeno, fácil de usar open-source integração contínua adequados para um Python base de código?

Publicado 02/08/2008 em 19:43
fonte usuário
Em outras línguas...                            


7 respostas

votos
26

Uma possibilidade é Hudson. Ele é escrito em Java, mas não há integração com projetos Python:

Hudson abraça Python

Eu nunca tentei isso sozinho, no entanto.

( Atualização , setembro de 2011: Depois de uma disputa de marca Hudson foi renomeado para Jenkins .)

Respondeu 02/08/2008 em 19:56
fonte usuário

votos
25

Corremos Buildbot - Trac no trabalho. Eu nunca usei isso muito desde a minha base de código não é parte do ciclo de lançamento ainda. Mas nós executar os testes em diferentes ambientes (OSX / Linux / Win) e envia e-mails - e está escrito em Python.

Respondeu 02/08/2008 em 20:06
fonte usuário

votos
17

Nós usamos as Buildbot e Hudson para o desenvolvimento Jython. Ambos são úteis, mas têm diferentes pontos fortes e fracos.

configuração do Buildbot é puro Python e bastante simples uma vez que você pegar o jeito dele (olhar para a documentação da API gerada pelo epydoc para a informação mais atual). Buildbot torna mais fácil definir as tarefas não-teste e distribuir os testadores. No entanto, ele realmente não tem noção de testes individuais, apenas textual, HTML e saída de resumo, por isso, se você quer ter saída de teste navegável multi-nível e assim por diante você vai ter que construí-lo sozinho, ou apenas usar Hudson.

Hudson tem apoio óptimo para perfuração para baixo a partir dos resultados totais para conjuntos de testes e ensaios individuais; ele também é ótimo para comparar a produção de teste entre constrói, mas o (master / slave) o material distribuído é comparativamente mais complicado porque você precisa de um ambiente Java sobre os escravos também; Além disso, Hudson é menos tolerante com links de rede esquisito entre o mestre e os escravos.

Assim, para obter os benefícios de ambas as ferramentas, corremos uma única instância de Hudson, que pega as falhas nos testes comuns, então nós fazemos a regressão multi-plataforma com Buildbot.

Aqui estão os nossos exemplos:

Respondeu 15/09/2008 em 01:11
fonte usuário

votos
17

Segundo o Buildbot - integração Trac. Você pode encontrar mais informações sobre a integração no website Buildbot . No meu trabalho anterior, que escreveu e usado o plugin eles mencionam (tracbb). O que o plugin faz é reescrever todos os URLs buildbot assim você pode usar Buildbot de dentro Trac. ( Http://example.com/tracbb ).

A coisa realmente agradável sobre Buildbot é que a configuração é escrito em Python. Você pode integrar o seu próprio código Python diretamente para a configuração. É também muito fácil de escrever seus próprios BuildSteps para executar tarefas específicas.

Usamos BuildSteps para obter a fonte do SVN, puxe as dependências, publicar os resultados dos testes para WebDAV, etcetera.

Eu escrevi uma interface X10 para que pudéssemos enviar sinais com resultados da construção. Quando a compilação falhou, nós ligada uma lâmpada de lava vermelho. Quando a construção bem-sucedida, uma lâmpada de lava verde ligado. Bons tempos :-)

Respondeu 03/08/2008 em 13:09
fonte usuário

votos
7

Estamos usando Bitten wich é integrado com trac. E é python base.

Respondeu 16/09/2008 em 17:51
fonte usuário

votos
6

TeamCity tem algum Python integração .

Mas TeamCity é:

  • não open-source
  • não é pequeno, mas rico em recursos
  • é livre para equipes pequenas meados.
Respondeu 22/09/2008 em 22:18
fonte usuário

votos
5

Tenho muito boas experiências com Travis-CI para bases de código menores. As principais vantagens são:

  • configuração é feita em menos da metade de uma tela de arquivo de configuração
  • você pode fazer sua própria instalação ou simplesmente usar a versão gratuita hospedado
  • instalação semi-automática para repositórios github
  • nenhuma conta necessária no site; github acessar através

Algumas limitações:

  • Python não é suportado como uma linguagem de primeira classe (como do tempo da escrita, mas você pode usar pip e apt-get para instalar dependências python, veja este tutorial )

  • código tem de ser hospedado no github (pelo menos quando se utiliza a versão oficial)

Respondeu 02/02/2012 em 22:42
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more