Fala Pessoal,

Nesse post vou falar um pouco de uma solução que implantei em um cliente. O Cenário lá é o seguinte: Eles possuem uma solution que contém mais de um projeto Web App e projetos WCF.

Nós já tínhamos implementado nesse projeto a Continuos Integration, criando uma Build Definition e setando a trigger de CI.

Depois de um tempo foi requisitado uma build noturna e que nessa build os projetos web e os serviços fossem publicados no ambiente de homologação, automatizando o processo de build e deploy.

Basicamente, iremos validar a compilação, rodar testes de unidade e integração (quando aplicável) e se tudo der certo, publicar no ambiente de homologação para que o usuário final pudesse validar as últimas alterações implementadas.

Para atender esse cenário, utilizamos uma funcionalidade do Visual Studio, o publish profile ( para infos sobre o que é e como criar, acesse o site: http://msdn.microsoft.com/en-us/library/dd465337.aspx )

Depois que criarmos os publishes profiles conseguiríamos publicar os sites e serviços se clicássemos com o botão direito e der o publish. Essa ainda não é a solução desejada.

Como fazer para encaixar isso na minha Build Definition e quando ela rodar os meus sites serem publicados?

Na sua Build Definition, vá na aba de processos e procure a opção MSBuild Arguments, conforme a figura abaixo:

clip_image001

Agora que a coisa começa a ficar interessante, o MSBuild tem um parâmetro que podemos passar que permite que eu informe o nome do meu Publish Profile para fazer o deploy logo após a compilação e execução dos testes.

Para isso digite o seguinte no MSbuild Arguments :

PublishProfile=”QA”

O “QA” é o nome que você deu para o seu publish profile. Para que todos os seus sites e serviços sejam publicados, basta dar o mesmo nome para o publish profile e tudo será publicado logo após a compilação e execução de testes.

Com isso, de forma simples e rápida montamos uma solução que compila e faz o deploy das nossas aplicações para qualquer ambiente que desejarmos.

Até a próxima.

Claudio Leite

Claudio Leite é consultor de ALM da Lambda3, Visual Studio ALM Ranger, PSD, PSM I e PSM II. Graduado em Ciência da Computação pela Universidade Católica de Petrópolis, MBA e POS-MBA em Gestão de Projetos pela Fundação Getúlio Vargas. Twitter: @claudiobernardo