Pergunta

Nossa automatizado constrói e testes estão a tomar uma quantidade crescente de recursos, especialmente desde que suportar muitas plataformas e teste em ambos os de depuração e otimizado. Então, eu estou procurando algum apoio ferramenta que permitiria uma abordagem mais gradual "pipeline" para que pudéssemos obter feedback e resultados mais rápidos. Algumas características ideais incluem:

  1. Suporte para feedback incrementais para que possamos ver os resultados da construção, testes unitários, testes rápidos, os testes já em execução, análise estática, etc. assim que estiverem disponíveis.

  2. dependência de tarefas:. Se a construção falhar, então os testes não deve ser executado, mas outras tarefas poderia ser (como fiapos ou algo assim)

  3. O suporte para múltiplas ferramentas de compilação e teste (incluindo personalizado).

  4. O suporte para múltiplas plataformas (Linux, Mac, possivelmente Windows).

  5. Alguns capacidade de arquivamento seria ótimo, coisas como arquivos de log, construção / saída de teste, etc. natrually, isso pode ficar unmanageably grande para que alguns dados, idealmente, ser purgado após X muitos dias ou Y muitos constrói.

Qualquer ponteiros ou aconselhamento pessoal é muito apreciado.

Foi útil?

Solução

Você pode querer dar uma olhada Jenkins (ex-Hudson) .

Outras dicas

Eu tenho usado Formigueiro mas você tem que pagar por isso.

automatizada compilação Estúdio chega perto eu acho, embora ele provavelmente isn' t uma opção para você por causa de sua natureza somente para Windows.

  1. Sim. O front-end web fornece feedback incrementais como constrói estão em execução, tanto em detalhe, e como uma porcentagem.
  2. Sim. O processo de construção é uma hierarquia de tarefas. Você pode determinar se uma tarefa é deixar-continuar ou não-abort.
  3. Sim. As tarefas podem ser praticamente qualquer coisa. A caixa de ferramentas de tarefas que o acompanha é bastante completa.
  4. Não. O servidor de compilação deve ser uma máquina windows. No entanto, pode iniciar constrói a partir do front-end web.
  5. Sim. Cada compilação é registrado em detalhes, hierarquicamente, por isso é fácil de pin-point que aconteceu a cada passo.

buildbot vai fazer tudo o que você quer:

  1. frontais Web finais exibe a saída dos comandos.
  2. dependências de tarefas completa
  3. Totalmente ferramentas personalizadas - script Python, mas roteiros principalmente shell
  4. atual que estamos a usá-lo no Linux, Mac, Solaris, HP-UX
  5. Ele registra tudo, eu não sei como / se ele limpa as coisas.

Será que tem que concordar com a opção ThoughtWorks - Go "Agile Release Management" http://www.thoughtworks-studios.com/go-agile-release-management

Há uma edição da comunidade (livre) e algumas boas características na edição de empresa, como configurações e implantação de artefato específico (versões) para ambientes específicos do ambiente.

Configuração Meu JetBrains TeamCity aproxima o que você precisa.

Em um único projeto, eu definir várias configurações diferentes de construção.

A diferença entre cada configuração de compilação está na escolha dos alvos de compilação (eu uso NAnt) e no desencadeamento.

Eu tenho uma configuração de "XYZ Integração", que faz uma compilação de depuração e executa alguns testes NUnit. Isso desencadeia 60 segundos após um check-in for concluída, dando um feedback rápido para a equipe de desenvolvimento.

Eu também tenho uma configuração "XYZ Daily" que faz uma compilação de depuração, executa testes NUnit, em seguida, constrói alguns MSIs e compila alguma documentação. Como você provavelmente pode imaginar, isso acontece uma vez por dia.

Você poderia fazer o mesmo, mas com uma ampla gama de configurações.

de Hericus Software Zed Constrói e erros de Gestão e ele pode lidar com o que você está descrevendo. Nosso principal constrói consistem em mais de 61 passos discretos que cobrem compila para Java, C ++, C #, e instalação constrói para 5 plataformas de sistemas operacionais diferentes. Algumas das etapas executadas em paralelo, alguns podem falhar sem causar toda a compilação falhar, e muitos dos passos são executados remotamente em máquinas diferentes.

1) Sim. Como as etapas são executadas para uma compilação você pode ver imediatamente os resultados da etapa sem ter que esperar para toda a compilação completa.

2) Sim. Você pode definir se uma falha etapa faz com que uma falha compilação completa ou não. A capacidade de criar "criança" ou "sub" builds chamado por um "pai" ou construir "master" permite extrema flexibilidade.

3) Sim. Estamos usando makefiles, formiga, soluções de C #, e vários scripts personalizados e todos eles integrar-se bem.

4) Sim. O servidor de compilação é java e requer apenas um 1.6 JDK, portanto, quaisquer plataformas funciona para os servidores de construção ou a construção principal servidor ou o satélite.

5) Sim. Tudo copiado para o diretório de construção "status" é salvo. Isto inclui comandos padrão de saída / erro que pode ser revisto a partir do web site. Você escolhe o quanto história "dev" construir para se manter em termos de número de compilações. A construção também pode ser promovido a "GQ", caso em que não será excluído até que tenha sido removido da "GQ". De QA você pode promover uma compilação de "Produção", que vai manter todos os artefatos de construção até que você decida excluí-los.

Cruise tentativa plese de Thoughtworks

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top