Pergunta

dizer que você está desenvolvendo código que precisa para compilar e executar em vários hosts (dizem Linux e Windows), como você vai fazer sobre isso da maneira mais eficiente, uma vez que:

  • Você tem acesso total ao hardware para cada host que você está compilando para (no meu caso um host Linux e um host Windows em pé na minha mesa)
  • Edifício sobre uma unidade de rede é muito caro
  • Não commit um repositório central deve ser exigido - supor que existe um motor CI que tenta construir assim que nada é verificado em

meios "eficiente" mantendo o ciclo de compilação e edição prazo tão curto e simples possível.

Foi útil?

Solução

A maioria dos servidores de construção mencionados em outras respostas confira as alterações de um sistema de controle de versão. Dada a sua "Não commit um repositório central deve ser exigido" exigência, eu sugiro que você tente JetBrains TeamCity servidor de CI.

Tem plugins fro Visual Studio e Eclipse e permite que você solicite um " compilação particular ", enviando as suas alterações diretamente para o servidor de compilação. Para cada projeto que você pode definir uma série de configurações de compilação com diferentes requisitos (OS é um dos possíveis reqs). Se as compilações ter sucesso, o plugin irá pedir-lhe para confirmar as alterações.

A versão gratuita suporta 3 agentes e você pode comprar mais, se necessário.

Parece pulso também tem a mesma característica , mas não tenho experiência em primeira mão com ele.

Outras dicas

A melhor coisa que posso recomendar é um projeto multi-plataforma incrível chamado 'buildbot'.

buildbot pode provocar automaticamente uma compilação de ocorrer em todas as plataformas que você apoiar, cada vez que você verifique uma nova revisão em seu sistema de controle de origem. Tê-lo construir em OSX, Linux (Ubuntu), Linux (Debian), Linux (Redhat), Vista, Windows XP, etc, e ter e-mails enviados ou o que você preferir quando uma compilação falhar.

Como parte do processo de compilação, você pode publicar binários se os testes passar. Útil para 'noturno' ou 'bleeding edge' constrói.

Aqui estão algumas urls:

Nós achamos que Hudson é um servidor de CI grande que pode executar constrói do controle de origem, conforme necessário. Como está escrito em Java pode ser executado em sua plataforma de destino de escolha e como a interface é baseado na web que você pode controlá-lo de qualquer lugar. Existem plugins para fazer a maioria das coisas que você quer fazer eo melhor de tudo é! Livre

Escolha uma máquina como a sua caixa de desenvolvimento.

Configuração o outro para atualizar automaticamente a partir de seu controle de origem em uma base regular (por hora / dia / whatever). Quaisquer falhas de construção / teste devem enviar-lhe algum tipo de mensagem de aviso. (Email, im, qualquer que seja). Sua caixa não-dev ainda estar construindo localmente, uma vez que tem a sua própria cópia da árvore.

Antes de fazer um lançamento real, você ainda quer fazer testes em humanos, é claro. Mas isso mantém a vida sã o resto do tempo.

Use http://ccache.samba.org para acelerar compila onde apenas alguns arquivos foram alterados em um projeto maior,

e quando grandes mudanças foram feitas, a alavancagem http://en.opensuse.org/Icecream ao mesmo tempo para compartilhada distribuída compilação.

Isso deve provavelmente acelerar significativamente o seu ciclo de compilação de gerência de edição.

Uma vez que você estiver usando CI eu suponho que você já configurou um processo de compilação corretamente. O que estamos fazendo é que estamos usando caixas de janelas como máquinas de dev e CI está sendo executado em Solaris. Isto assegura que o código compila bem em múltiplas plataformas. O código é em Java e não usa qualquer bibliotecas nativas por isso é bastante garantido que o código irá funcionar. Estamos usando bambu no trabalho - é grande, mas não é livre :-)

Para meus projetos privados tenho vindo a utilizar Continuum, mas o Husdon parece puro (eu vou dar-lhe uma tentativa.) - graças Peter

Construção configuração simples para tal tarefa é muito simples.
Vou sugerir Cygwin para ser usado em plataforma Windows. Desta forma, você pode escrever software / scrips completamente portáteis para ambas as plataformas Linux e Windows. Não está claro de que você postar em que fase do projecto seu é, mas supondo que você só começando i irá sugerir o uso de fazer para construir o seu software. Você pode usar o cron para agendar a frequência para o seu check-out círculo / build. Você pode até mesmo enviar um e-mail com o log de construção se o seu partido.
Há número de teste de compilação diária pronto ambos fonte comercial e aberta você pode google para isso ou pode ser alguém vai acrescentar aqui sugestões.
Estamos usando a ferramenta cultivado em casa para essa tarefa por isso não posso sugerir algo pronto feito.

Ok, i perdeu o ponto que você não quer usar o sistema de controle de origem (que é estranho, mas você é o chefe :)), neste caso, basta substituir o check-out com rsync tudo mais estadias semelhantes.

Uma opção seria Cascade , que lhe permite testar as alterações em todas as suas plataformas antes , em vez de depois, cometer, por "pontos de verificação"-las no servidor.

Uma palavra: Cruise (não Cruise Control) é muito agradável

Você pode obter dois agentes para livre e um um agente por plataforma. Leva literalmente minutos para configurar para Mac e PC, e não é muito ruim no Linux do que eu ouço.

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