Build automático de projetos com Continuum: Este artigo apresenta o Continuum, um servidor de Integração Contínua que oferece funcionalidades como builds automatizados, gerenciamento de releases, segurança baseada em papéis (roles) e integração com os principais sistemas controladores de versão do mercado: Subversion, CVS e GIT.
Em que situação o tema é útil: Este tema é útil para programadores,
arquitetos, gerentes e testers que atuam em equipes que desejam utilizar uma ferramenta de automatização de
builds e gerenciamento de releases. A ferramenta e as técnicas aqui descritas ajudam a promover a melhoria da
qualidade do software produzido, facilitam a manutenção de um build consistente que pode ser executado diversas
vezes, permitem uma maior interação entre as equipes e tornam mais ágil os processos de desenvolvimento.
Manter a qualidade do software produzido é um dos maiores desafios que as equipes de desenvolvimento de software enfrentam hoje em dia. Identificar os problemas, independentemente da linguagem escolhida, das tecnologias envolvidas e dos frameworks utilizados, é uma tarefa complexa e uma das principais razões pelas quais muitas equipes falham em construir um bom produto. Além disso, os atrasos nas entregas e o retrabalho tornam-se cada vez mais frequentes, resultando em dinheiro e esforço desperdiçados. Num cenário como esse, a Integração Contínua é uma excelente opção que pode ajudar a melhorar os processos de desenvolvimento.
Segundo Martin Fowler, a “Integração Contínua é uma prática de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente”.
Imagine uma equipe de desenvolvimento trabalhando da forma como Fowler descreve. Que ganho de produtividade seria obtido se houvesse uma ferramenta capaz de executar os builds de forma automática? E se, além disso, ela pudesse identificar e reportar os problemas assim que fossem encontrados? Um servidor de Integração Contínua cumpre exatamente esse papel.
Com base nisso, neste artigo mostraremos como instalar e configurar um servidor de Integração Contínua. Para isso, optamos pelo Apache Continuum, devido às funcionalidades que ele oferece e ao suporte fornecido pela comunidade de desenvolvedores da Apache. Além da instalação, mostraremos como configurar o build de um projeto a partir de sua URL no Subversion, como modificar o agendamento da execução dos builds e como adicionar notificações que serão disparadas quando o build for executado.
Por que usar um servidor de Integração Contínua?
A questão chave é a garantia da qualidade. É uma boa prática cada desenvolvedor fazer o build do projeto em sua própria estação de trabalho, no entanto, esse procedimento não é suficiente para garantir a integridade do código, ou seja, há algumas outras questões a serem levadas em conta. Por exemplo, vamos supor que houve uma mudança em um determinado requisito e foi necessário alterar uma biblioteca de uso comum do sistema que está sendo desenvolvido. Imagine que essa biblioteca é utilizada por um componente de conexão com o banco de dados e que este é largamente utilizado por vários aplicativos que compõem o sistema. Nesse caso, devido ao tamanho do sistema, é possível que o desenvolvedor não tenha visibilidade de tudo o que essa alteração pode afetar porque sua workspace possui apenas os aplicativos com os quais ele deve trabalhar e eles continuam funcionando corretamente.
Ao longo do tempo, no entanto, alguns aplicativos começaram a apresentar problemas de compilação ou erros durante os testes integrados por causa das alterações feitas naquele componente de conexão com o banco de dados. E agora? Como é possível manter os aplicativos integrados e garantir que todos saibam o que está acontecendo? Como a equipe que desenvolve o aplicativo afetado será informada dessa situação para que possa fazer as correções necessárias? É nesse contexto que pretendemos demonstrar como um servidor de integração contínua pode ser uma ferramenta de grande valia.
O que o build do projeto deve fazer?
Segundo Duvall (2007), o build deve ser capaz de construir o aplicativo a partir do seu código-fonte sem intervenção manual. Para que funcione, o ideal é que seja necessário executar apenas um comando que dispare a sequência de ações. Os scripts não podem conter dependências em relação às IDEs utilizadas para desenvolvimento e deverão ser executados pelo sistema de integração contínua sempre que houver uma mudança no código-fonte ou segundo um agendamento.
A estrutura de diretórios utilizada para armazenar o código-fonte deverá ser a mesma para todos os projetos porque isso facilita a localização dos arquivos e a manutenção do script de build. Os arquivos de configuração a serem utilizados pelo aplicativo em cada ambiente em que ele for instalado (desenvolvimento, teste, homologação e produção) devem ser criados a partir do mesmo modelo de forma a garantir, por exemplo, que os parâmetros para conexão com o banco de dados sejam sempre os mesmos, independentemente dos ambientes, e apenas os valores (número de conexões, usuário, senha e URL do banco) possam ser diferentes.
Além disso, as variáveis de configuração de ambiente no servidor deverão ser independentes do aplicativo sendo construído. Por exemplo, se o build precisa utilizar um determinado diretório, esse deverá ser definido no script e não no servidor ou no aplicativo que está sendo construído. Com relação às dependências do build, Duvall explica que elas devem ser reduzidas ao mínimo necessário para executar o build.
...Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.