Pergunta

Estou procurando algumas recomendações para fazer a construção e implantação de projetos automaticamente.

Nossa configuração atual de desenvolvimento usa asp.net, svn, ccnet e um script msbuild para a construção do servidor de desenvolvimento. Eu estava pensando em mudar para o Cruise em vez do CCNET, embora não tenha certeza se isso me dá algo extra que eu já não tenho.

O que eu gostaria de automatizar é o processo de depois que uma compilação automatizada é feita para atualizar o site ao vivo com as novas alterações. As atualizações do site podem incluir atualizações do site base, bem como atualizações do cliente, que podem ser alterações de código e/ou banco de dados, para que o processo precise ser flexível o suficiente para que possa lidar com esses cenários.

Uma das minhas fontes de inspiração para isso veio de esse vídeo bem como as infinitas horas gastas fazendo atualizações a cada mês.

Foi útil?

Solução

Por Projetos menores ou pessoais, Eu recomendaria usar algo como o grátis (e excelente) Teamcity por jetbrains. Automação de teste de unidade, integração contínua e regras para o que acontece após uma compilação (incluindo movê -la para diferentes locais).

Por equipes maiores, Na verdade, encontrei um pouco de automação de construção na forma de tarefas personalizadas do MSBuild e Robocopy funciona melhor. Essa boa combinação entre promover manualmente as construções entre os ambientes e o uso do MSBuild e Robocopy para automatizar partes desse processo cria quebras limpas entre ambientes (com muito poucos 'oops, eu não pretendia pressionar os erros). Também nos permite fazer com que a revisão de controle de qualidade crie antes de promover.

ATUALIZAÇÃO 31/05/2014:

Eu usei Modelos de construção de TFs personalizados com sucesso. Eles são um pouco complicados, mas você pode fazer algumas coisas legais com eles.

Para projetos de código aberto (como Nuget Libraries) hospedados no Github, acho que você não pode vencer AppVeyor. Eu tenho alguns projetos como Mailchimp.net que têm automação completa de compilação e Nuget.

Outras dicas

Parece que as duas principais funções para implantar as alterações do seu código são: 1. Copiando arquivos e 2. Execução de alterações no script do banco de dados. Se você olhar usando Tarefas da comunidade msbuild Existem muitas tarefas úteis de construção que podem ajudá -lo ao longo do caminho. SQLEXECUTE e ROBOCOPY SOM que eles seriam tudo o que você precisaria usar. Isso exigiria que você modifique seus arquivos de projeto para estender o comportamento de construção deles, mas, uma vez feito isso, você poderá "script" a parte manual do que está sendo feito.

Eu usei Nant no passado com muita sorte para tarefas semelhantes. Você pode iniciá -lo usando sua compilação automatizada. (http://nant.sourceforge.net/)

Se você quiser algo mais abrangente, pode conferir Wix (http://wix.sourceforge.net/)

Agora, você tem certeza de que tudo o que uma construção autmatic começa que deseja atualizar o site ao vivo? Ou você quer dizer que você inicia uma construção, usando sua ferramenta CC e, em seguida, gera uma compilação para ir ao ar?

Eu odiaria a atualização do site ao vivo quando alguém verificou uma nova versão de um arquivo.

As atualizações do seu banco de dados provavelmente serão o aspecto mais desafiador. No entanto, desde que o que seja marcado para a atualização do banco de dados seja um script de alteração, não será ruim.

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