Introdução editar

TeamCity é uma ferramenta de Integração Contínua (IC) criada pela JetBrains em 2006 que se destaca entre as outras pela facilidade de configuração para aplicações em Java, .NET e outras. A ferramenta está disponível por licença proprietária, ou seja, não é Open Source. Entretanto, a JetBrains disponibiliza uma API, TeamCity Open API, para auxiliar a criação de plugins com funcionalidades próprias. Atualmente, se encontra na versão 10.0.5, 9 de março de 2017, o que significa que a ferramenta ainda está em constante aprimoramento.

A ferramenta é Freemium, ou seja, pode ser utilizada gratuitamente mas caso seja necessário mais funcionalidades, é necessário pagar. Na versão gratuita, é possível criar 20 configurações de build e utilizar 3 agentes de build. É possível então comprar um pacote Build Agent ou licenças empresariais negociáveis.

As principais características da ferramenta são:

  • Suporte para Integração Contínua tradicional ou por branches
  • Facilidade de configuração de builds para linguagens como Java, .NET ou plataformas mobile
  • Adição de funcionalidades, via plugins prontos ou criando novos via a TeamCity Open API
  • Suporte amplo, seja pelo fórum da comunidade, pelo registro público de issues ou pela documentação online compreensiva
  • Escalabilidade e licenciamento, caso seja necessário o uso de mais Build Agents, é possível obter mais por meio de licenças

O TeamCity suporta os seguintes sistemas de controle de versão :

  • Subversion
  • Perforce
  • CVS
  • Borland StarTeam
  • IBM Rational ClearCase (Base and UCM)
  • Team Foundation Server (2005, 2008, 2010)
  • Visual Studio Team Services
  • Microsoft Visual SourceSafe
  • Git
  • Mercurial
  • SourceGear Vault

Conceito de Integração Contínua editar

Integração Contínua (IC) é uma prática de desenvolvimento de software em que vários desenvolvedores enviam mudanças para um repositório compartilhado, onde cada mudança enviada é processada por um build automático, de forma que seja feita uma análise se as novas mudanças se integram bem ao sistema e não foram detectados erros.

Como funciona o TeamCity editar

Antes de entender o funcionamento do TeamCity, é preciso definir alguns termos:

  • VCS Root: São o conjunto de configurações do controle de versão, responsáveis por determinar a comunicação entre o TeamCity e o sistema de controle de versão utilizado, como por exemplo o Git.
  • Build Trigger: É uma regra interna que inicia uma nova build em certos eventos.
  • Build Agent: Uma parte do software que é responsável por executar um processo de build, de forma automatizada. No TeamCity, esse pode ser configurado fisicamente ou virtualmente, com diversos tipos de ambiente e sistema operacional.
  • Build Steps: É uma tarefa a ser executada.
  • Build Artifacts: São os arquivos produzidos por uma build, como por exemplo um .exe ao executar uma build de um código generalizado em C.

O funcionamento do TeamCity pode ser descrito em 5 etapas simples:

  1. O servidor do TeamCity detecta uma mudança no VCS Root e então salva essa mudança no banco de dados
  2. O Build Trigger detecta a mudança no banco de dados e adiciona uma build na fila
  3. O servidor encontra um Build Agent que está ocioso e então envia uma das builds para ser processada por ele
  4. O Build Agent executa os Build Steps. Ao mesmo tempo que a build vai sendo realizada, todo o progresso é enviado via mensagens de log, resultados de testes, cobertura de testes, etc, para o servidor. Dessa forma, é possível visualizar o processo em tempo-real.

O build termina, e então o Build Agent envia os Build Artifacts para o servidor.

Instalação do TeamCity editar

Primeiramente, você pode ter acesso aos downloads das versões para Windows, Linux, macOS e JavaEE por aqui: https://www.jetbrains.com/teamcity/download/

Windows editar

  1. Execute o arquivo “TeamCity<número da versão>.exe” e siga as instruções do assistente de Configuração do TeamCity. O servidor da Web TeamCity e um agente de compilação serão instalados na mesma máquina.

Obs: Observe que, para fins de produção, é recomendável configurar o servidor e o agente do TeamCity em máquinas separadas.

Durante a instalação, você pode configurar o seguinte:

  • Indicar o diretório que o TeamCity será instalado;
  • Se o web server e o build agent do TeamCity serão executados como serviços do Windows;
  • A porta do servidor: "80" é a porta padrão do TeamCity, que pode já estar sendo utilizada por outra aplicação no sistema, como por exemplo o Skype. Altere a porta do servidor se ela já estiver em uso;
  • A porta do agente: "9090" é o padrão para conexões de entrada do servidor. Se a porta já estiver em uso, você deverá que alterar o valor "ownPort" nas propriedades do Build Agent.

Distribuições Linux e macOS X editar

  1. Verifique se o JRE ou JDK do Oracle Java 1.8 estão instalados. Desde o TeamCity 10.X, o Oracle Java 1.8 JDK é necessário para esta instalação. Abra um terminal de linha de comando e execute o seguinte comando para verificar:
    Java -version
  2. Verifique se a variável de ambiente JAVA_HOME está apontando para o diretório de instalação Java. Execute o seguinte comando no terminal de linha de comando:
    Echo $ JAVA_HOME
  3. Use o pacote TeamCity <número da versão> .tar.gz para instalar manualmente o TeamCity empacotado com o contêiner do servlet Tomcat. É necessário descompactar esse arquivo e executar o conteúdo interno. Obs: Esse arquivo também pode ser utilizado para a instalação no Windows.
    Tar xfz TeamCity <número da versão> .tar.gz
  4. O servidor da Web TeamCity e um agente de compilação serão instalados na mesma máquina.

Obs: Observe que, para fins de produção, é recomendável configurar o servidor e o agente do TeamCity em máquinas separadas.

Iniciando o TeamCity editar

Windows - Como serviço editar

Se o servidor TeamCity estiver instalado como um serviço do Windows, siga o procedimento usual de iniciar e parar serviços do sistema operacional.

Isso pode ser feito da seguinte forma:

  1. Utilize o atalho "Win+R" para abrir o "Executar" e digite o comando abaixo, seguido de "Enter"
    services.msc
  2. Procure os serviços do TeamCity e habilite/desative conforme sua necessidade

Windows, Linux e macOS editar

Para iniciar / parar o servidor TeamCity e um agente padrão ao mesmo tempo, use o script runAll, fornecido no diretório /bin localizado no diretório em que o TeamCity foi instalado.

Para iniciar o servidor e o build agent padrão, use:

runAll.bat start

Para parar o servidor e o build agent padrão, use:

runAll.bat stop

Acesso à interface Web editar

Se você não alterou a porta padrão (80) durante a instalação, a interface da Web do TeamCity pode ser acessada via "http://localhost/" para versões Windows e "http://localhost:8111/" para versões instaladas descompactando o tar.gz; em um navegador da Web executado na mesma máquina onde o servidor está instalado. Caso a porta não seja a padrão, use "http://localhost:<porta>/".

Para alterar a porta do servidor, vá até o diretório onde o TeamCity está instalado, navegue por /conf/server.xml, altere o número da porta no nó XML <Connector>, por exemplo:

 <Connector port = "8111" 

Então, aplique as mudanças e reinicie o servidor caso ele esteja rodando no momento da alteração.

Primeira configuração editar

Ao entrar na interface web, provavelmente o TeamCity irá ser configurado pela primeira vez. Verifique os seguintes pontos:

  • Revise a localização do Diretório de Dados do TeamCity, onde todas as informações de configuração são armazenadas. Clique em Proceed.
  • O TeamCity armazena o histórico de compilação, os usuários, os resultados de compilação e alguns dados de tempo de execução em um banco de dados SQL e permite que você selecione o tipo de banco de dados;
  • Por enquanto, mantenha o banco de dados interno padrão (Internal HSQLDB). Clique em Proceed.

Demorará algum tempo para que o TeamCity configure os componentes necessários.

  • Na próxima tela, aceite o Contrato de Licença para prosseguir com o lançamento. Clique em Proceed.
  • O TeamCity exibe a página Criar conta de administrador. Especifique as credenciais de administrador e clique em Create Account.

Você está conectado ao TeamCity: agora você pode configurar suas configurações de usuário e criar e executar sua primeira compilação.

Criar um projeto apontando para o repositório GitHub.com[1] editar

Ao acessar a interface web do TeamCity, a visão padrão estará em mostrar todos os projetos configurados para aquele servidor. Para criar um projeto, use o link Administration no canto superior direito. Para configurar o primeiro projeto com um repositório do GitHub, siga os passos abaixo:

  1. Clique em Crate project e então selecione Pointing to GitHub.com repository;
  2. A página Connections é aberta com o diálogo Add connection. Será necessário prover os parâmetros para registrar o TeamCity no serviço do GitHub. Clique em register TeamCity;
  3. A página do GitHub é aberta. Será necessário registrar o TeamCity como uma aplicação OAuth no GitHub;
  4. Entre na sua conta do GitHub. Busque a página de registro de uma nova aplicação OAuth. Será necesário especificar o nome, a URL da home e uma URL de callback. Essas informações estão disponíveis no segundo passo;
  5. Clique em Register application. A página é atualizada com o Client ID e as informações secretas do cliente para o aplicativo TeamCity.
  6. Continue configurando a conexão no TeamCity. No diálogo Add connection, especifique o Client ID e o Client secret. Após isso, clique em Save para salvar as informações;
  7. Agora, será necessário autorizar o TeamCity no VCS, ou seja, autorizar o acesso à sua conta do GitHub. Clique em Sign in to GitHub. Após isso, no GitHub, clique em Authorizate application;
  8. Agora o TeamCity tem acesso aos repositórios do GitHub. A configuração do novo projeto no TeamCity pode ser continuada. Todos os repositórios disponíveis serão apresentados no campo Choose a repository. Basta começar a digitar o nome do repositório e escolher;
  9. O TeamCity irá verificar a conexão com o repositório. Caso a conexão seja verificada com sucesso, a página Create Project será aberta. Modifique os nomes dessa página caso deseje e clique em Proceed;
  10. O TeamCity irá verificar automaticamente o repositório VCS que foi configurado e autodetectar as informações de build. Marque as caixas dos steps desejados e use-os em sua configuração de build;
  11. Pronto. A configuração entre o TeamCity e o GitHub está feita. Agora é possível iniciar a build e confirgurar outras opções caso seja necessário.

Vantagens editar

  • Interface de fácil uso e configuração simples.
  • Integração com uma grande variedade de ferramentas e tecnologias, e mais outras caso esteja disponível um plugin para isso.
  • Documentação online e suporte amplo
  • Criação de plugins próprios utilizando a TeamCity Open API, caso não exista alguma funcionalidade desejada.

Desvantagens editar

  • Não é uma ferramenta Open Source, o que pode impactar diretamente na quantidade de plugins disponíveis na comunidade.
  • É um Freemium, ou seja, você deve adquirir licenças caso seja necessário utilizá-lo em larga escala.


Referências

  1. https://confluence.jetbrains.com/display/TCD10/Configure+and+Run+Your+First+Build#ConfigureandRunYourFirstBuild-CreateaprojectpointingtoGitHub.comrepository