Configurando Build com TFS 2010

Continuando a série de posts sobre Team Foundation Server 2010 hoje vou descrever como configurar o build automático de uma aplicação usando o TFS 2010 e o Visual Studio 2010, então vamos lá…

1) Configurando TFS Build

Se em seu projeto você tentar configurar um novo build e receber a mensagem abaixo, é porque o Build do TFS não está configurado no servidor

A configuração do TFS Build segue o padrão Next, Next, Next, Finish, para configurar o build entre no Team Foundation Server Administration Console e selecione a opção Build Configuration -> Configure Installed Features

Nessa tela tem uma descrição da configuração, Clique em Start Wizard

Nessa tela é apenas de início, clique em Next

Agora é apresentado a sua collection onde será configurado o Build, selecione a collection e clique em Next

Vamos criar a quantidade de agentes, o padrão é 1, clique em Next

Selecione a conta que vai executar o serviço de Build, e em qual porta ela vai ser executada, lembre que essa porta tem que estar liberada em seu Firewall, clique em Next

Para confirmar as configurações, clique em Next

O TFS vai verificar as configurações, clique em Configure

Processo de instalação

Mensagem de sucesso

Veja que agora na opção Build Configuration aparace nosso Controller e nosso Agente

2) Criando um novo Build

Agora vamos configurar o nosso projeto para usar o Build do TFS, abra seu projeto no TFS e clique com o botão direito sobre a opção Builds e selecione a opção New Build Definition

Será aberta uma nova aba no Visual Studio para configurar o nosso Build, clique em General e adicione um nome e uma descrição

Agora clique em Triger e vamos selecionar como nosso build será acionado

Temos algumas opções para acionar nosso Build

  • Manual – Será executado manualmente por um usuário acessando o Visual Studio
  • Continuous Integration –  Sempre que um Check-in é efetuado o build é executado, nesse caso é fácil descobrir quem quebrou o Build ( Who broke the build?)
  • Rolling Builds –  É parecido com o Continuous Integration, porém ele reúne vários Check-ins  e executa o build, também podemos configurar para ser executado em um determinado intervalo
  • Gated Check-In – Também é parecido com o Continuous Integration, porém quando o desenvolvedor realizar um Check-in uma janela irá aparecer conforme abaixo

Quando o desenvolvedor clicar em Build Changes o TFS cria uma Shelveset com os arquivos alterados o TFS Build faz um merge do código fonte, realiza o Build e se tudo ocorrer bem realizar o Check-in para o source control

  • Schedule – Podemos agendar para quando queremos o nosso build, todos os dias, todas quartas-feiras, em uma determinada hora, etc…

Agora clique em Workspace, onde vamos configurar qual source cntrol a ser executado o Build

Agora clique em Build Defaults e configure o diretório para onde deve ser copiado o Build, deve ser um diretório compartilhado na rede

Agora clique em Process e selecione os itens que vamos adicionar no build, que deve ser a nossa solution (.sln)

Clique em Add e selecione a solution do seu projeto

Agora é só salvar o build

3) Executando o Build

Como configuramos nosso build para ser iniciado Manualmente vamos executar nosso Build, clique no buil que acabamos de criar e selecione a opção Queue New Build

Na janela que abriu podemos configurar mais algumas opções, clique em Queue

Uma nova janela irá se abrir no Visual Studio como status do nosso build

Quando o build for concluído o status deve ficar conforme a imagem abaixo.

Para verificar os arquivos gerados temos que acessar a pasta compartilhada que configuramos anteriormente (\\tfs-2010\build) e acessar a pasta _PublishedWebsites

4) Erros Conhecidos

Alguns erros que ocorreram comigo durante a criação desse POST

Erro 1: MSB4019

Resolução

Copiar a pasta C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications da sua máquina local para o servidor de build

Erro 2: MSB3245

Resolução

Como meu projeto era é em ASP NET MVC 3 tive que instalar no servidor de Build

5) Boas Práticas

A Microsoft recomenda que o Build Service seja instalado em uma máquina separada da camada de aplicação do TFS, para melhor performance e também o servidor de Build deve possuir todos os assymblys referenciado em seu projeto

Qualquer dúvida, problema, sugestão deixe seu comentário!

Aquele Abraço!

Sobre Leandro Prado

Leandro Silveira Prado é Premier Field Engineer na Microsoft especializado em Application Lifecycle Management.