Do teste de joel :
Você pode fazer uma compilação em uma única etapa?
Eu tenho que dizer que não posso. Atualmente, estou trabalhando em um aplicativo Web que possui uma lista de planilhas com itens que devem ser executados para implantar. Então, minha pergunta é como posso automatizar isso ? Tem que ser uma organização ampla? Dicas / técnicas?
tools
builds
automation
billy.bob
fonte
fonte
Respostas:
Make pode automatizar o processo de compilação em uma única etapa. Make pode fazer praticamente o que você quiser. Não sei por que o sapporo pensa que o Make se aplica apenas ao C / C ++. Você pode usar make para executar qualquer tipo de comando. Ele nem está ligado à programação, embora seja para isso que é normalmente usado.
fonte
Dependendo do seu ambiente, você pode olhar para Make (C / C ++), Ant / Maven (Java), Gradle (Groovy) - é com isso que estou familiarizado. As chances são altas, existe uma solução popular para o seu ambiente.
fonte
No trabalho, usamos o FinalBuilder , que facilita a configuração de um script para automatizar todo o processo: faça check-out do código, construa tudo, execute testes, crie pacotes de implantação etc.
É uma ferramenta muito boa e recentemente ganhou o Dr. Dobbs Jolt Award por ferramentas de gerenciamento de alterações e configurações.
fonte
Claro que existe uma maneira de automatizar isso. Com ferramentas como Chef , a configuração de um novo servidor recém-instalado pode ser tão fácil quanto:
No meu caso, algumas etapas executadas por esse único comando são:
Não tenho certeza de como o Chef funcionará em seu ambiente, pois o suporte do Windows está listado como "preliminar", mas para o sistema baseado em UNIX, é o joelho da abelha.
O Puppet é um sistema semelhante que é um pouco mais antigo que o chef e pode oferecer melhor suporte ao Windows.
fonte
É simples com o Maven no mundo Java
Em nossa configuração, isso faz toda a construção necessária do arquivo WAR (puxando as dependências JAR conforme necessário), a implantação no servidor da web dev e a criação de dados de teste enlatados no banco de dados dev. Uma vez instalado, o Maven lida com os testes funcionais abrangentes através do SeleniumRC para verificar se o aplicativo funciona.
Esse comando único faz com que o aplicativo seja totalmente implantado no cluster do servidor dev, para que esteja prontamente disponível para outros desenvolvedores trabalharem imediatamente (supondo que ele tenha passado nos testes). É incomum uma falha na implantação do desenvolvedor, pois os desenvolvedores verificaram que ela trabalha localmente
mvn clean install
.O artefato de captura instantânea (WAR) é então copiado no repositório Maven para compartilhamento com outros desenvolvedores (conforme o
deploy
comportamento padrão do Maven ).OK, mas você implantou apenas uma captura instantânea no dev, e quanto a teste e produção?
A distribuição para os servidores de teste e de produção (mais tarde) é realizada através do processo de liberação do Maven, que gostamos de manipular manualmente para garantir que alguém esteja atento a qualquer saída suspeita. Os testadores trabalham apenas com artefatos liberados, não instantâneos.
Depois de lançado, um script de construção simples é usado para enviar o arquivo WARTP para o cluster do servidor de teste por SFTP, novamente com alguém assistindo o processo para garantir que nada dê errado.
Finalmente, depois que todos os testadores ficam satisfeitos, o arquivo WAR inalterado é transferido por SFTP até o cluster de servidores de produção de failover, com alguém vigiando de perto e uma posição imediata de reversão em caso de desastre.
fonte
Achei que poderia checar esse teste do Joel ...
Eu criei um servidor de compilação em python automatizado usando pychron .
O código foi sincronizado com o VSS a partir da linha de comando, construído com borland make (a maioria dos IDEs cria arquivos make para você, mesmo que eles não os chamem assim. O Delphi costumava criar arquivos make e chamá-los de arquivos .BPG, agora eles ' re arquivos XML do MSBuild e você pode usar o MSBuild) e os erros foram colocados em um arquivo XML que eu continuava adicionando.
Então .. Basta escrever um arquivo em lotes e fazer essas coisas.
fonte