Integração Contínua com CruiseControl Luthiano Vasconcelos [email_address]
Objetivos Apresentar os conceitos fundamentais relacionados as práticas de Integração Contínua. Demonstrar com o CruiseControl pode ser usado para implementar as práticas de Integração Contínua em projetos Java.
Material de Referência Integrating Agile Development in the Real World IBM Rational® ClearCase®, Ant, and CruiseControl Sorteio no final da apresentação!
Agenda Integração contínua O que é? Benefícios Fatores de sucesso CruiseControl O que é? Como funciona? Demonstração Dúvidas Agenda
Problemas no cotidiano das equipes Desenvolvedores e designers trabalhando no mesmo código-fonte. Qualquer um pode “quebrá-lo”! Um cenário típico: A complexidade do build é diretamente proporcional ao tamanho do projeto!
O que é Integração Contínua? Compila código-fonte Prepara banco de dados Executa testes Realiza inspeções
Benefícios Elimina as longas sessões de integração. O problemas de integração são detectados tão breve quanto possível. Melhora o trabalho em equipe: as pessoas criam um forte sentimento de interdependência. Fornece frequentemente informações importantes para o acompanhamento da qualidade do produto. Qualidade Produtividade
Fatores de sucesso Repositório unificado de código-fonte Builds  automatizados Testes automatizados Disciplina dos desenvolvedores Sincronizar freqüentemente Não quebrar o build, ele é sagrado Se você quebrou, conserte!
O que é CruiseControl? É um gerenciador de builds de código-aberto e gratuito Consiste de dois componentes:  Build loop (executa como um serviço/daemon) Status Dashboard (aplicação web) Integra-se a vários sistemas de gerenciamento de configuração (CVS, PVCS, Subversion, ClearCase, ...) Funciona com qualquer ferramenta de build que produza um resultado tratável (Ant, Maven, ...)
O que é CruiseControl? Independente de plataforma (escrito em Java) Facilmente extensível:  Arquitetura baseada em plugins Interfaces bem definidas com sistemas de controle de código-fonte e ferramentas de build Bem documentado:  Material de referência abrangente Lista de discussão bastante ativa Vários tutoriais Muitos livros
CruiseControl
CruiseControl Build Status
Diagrama de Arquitetura
Como funciona? Desenvolvedor publica seu trabalho no controle de código-fonte (CVS, SVN, etc…) CruiseControl verifica periodicamente e controle de código-fonte Se CruiseControl detecta alguma mudança: Dispara um build Captura logs e artefatos do build  Exemplos: jar, war, javadoc, relatórios de testes unitários, de cobertura de código e métricas de qualidade Publica os resultados  Exemplos: envia e-mail, acende uma luz!
Integração contínua para quem tem recur$o$
Integração contínua para quem tem recur$o$
Integração contínua para quem tem recur$o$
Integração contínua para quem tem recur$o$ http://www.hamang.net/index.php?option=com_content&task=view&id=16&Itemid=9
O que você ganha?
O que você precisa? Servidor de Builds Servidor de Controle de Código (CVS, SVN, etc…) Processo bem definido Ferramentas (CruiseControl, Ant, etc...) Responsabilidades do desenvolvedor Atualizar o repositório frequentemente. O código deve ser compilável O código deve ter testes unitários
Resumo Builds Noturnos (ou Diários)  é um boa prática, mas  Integração Contínua  é melhor! Integração Contínua não elimina os bugs , porém torna a tarefa de localizá-los mais fácil e rápida. CruiseControl viabiliza a Integração  Contínua, porém  a disciplina da equipe  de desenvolvimento é a chave . Automatização reduz custos, melhora  a visibilidade e deixa  menos espaço  para erros humanos .
Dúvidas?
Links Martin Fowler explica os princípios da Integração Contínua: http://www.martinfowler.com/articles/continuousIntegration.html CruiseControl: http://cruisecontrol.sourceforge.net/ Plugin para Firefox: http://www.md.pp.ru/mozilla/cc/ Esses modestos slides:  http://www.luthiano.com

Integracao Continua com CruiseControl

  • 1.
    Integração Contínua comCruiseControl Luthiano Vasconcelos [email_address]
  • 2.
    Objetivos Apresentar osconceitos fundamentais relacionados as práticas de Integração Contínua. Demonstrar com o CruiseControl pode ser usado para implementar as práticas de Integração Contínua em projetos Java.
  • 3.
    Material de ReferênciaIntegrating Agile Development in the Real World IBM Rational® ClearCase®, Ant, and CruiseControl Sorteio no final da apresentação!
  • 4.
    Agenda Integração contínuaO que é? Benefícios Fatores de sucesso CruiseControl O que é? Como funciona? Demonstração Dúvidas Agenda
  • 5.
    Problemas no cotidianodas equipes Desenvolvedores e designers trabalhando no mesmo código-fonte. Qualquer um pode “quebrá-lo”! Um cenário típico: A complexidade do build é diretamente proporcional ao tamanho do projeto!
  • 6.
    O que éIntegração Contínua? Compila código-fonte Prepara banco de dados Executa testes Realiza inspeções
  • 7.
    Benefícios Elimina aslongas sessões de integração. O problemas de integração são detectados tão breve quanto possível. Melhora o trabalho em equipe: as pessoas criam um forte sentimento de interdependência. Fornece frequentemente informações importantes para o acompanhamento da qualidade do produto. Qualidade Produtividade
  • 8.
    Fatores de sucessoRepositório unificado de código-fonte Builds automatizados Testes automatizados Disciplina dos desenvolvedores Sincronizar freqüentemente Não quebrar o build, ele é sagrado Se você quebrou, conserte!
  • 9.
    O que éCruiseControl? É um gerenciador de builds de código-aberto e gratuito Consiste de dois componentes: Build loop (executa como um serviço/daemon) Status Dashboard (aplicação web) Integra-se a vários sistemas de gerenciamento de configuração (CVS, PVCS, Subversion, ClearCase, ...) Funciona com qualquer ferramenta de build que produza um resultado tratável (Ant, Maven, ...)
  • 10.
    O que éCruiseControl? Independente de plataforma (escrito em Java) Facilmente extensível: Arquitetura baseada em plugins Interfaces bem definidas com sistemas de controle de código-fonte e ferramentas de build Bem documentado: Material de referência abrangente Lista de discussão bastante ativa Vários tutoriais Muitos livros
  • 11.
  • 12.
  • 13.
  • 14.
    Como funciona? Desenvolvedorpublica seu trabalho no controle de código-fonte (CVS, SVN, etc…) CruiseControl verifica periodicamente e controle de código-fonte Se CruiseControl detecta alguma mudança: Dispara um build Captura logs e artefatos do build Exemplos: jar, war, javadoc, relatórios de testes unitários, de cobertura de código e métricas de qualidade Publica os resultados Exemplos: envia e-mail, acende uma luz!
  • 15.
    Integração contínua paraquem tem recur$o$
  • 16.
    Integração contínua paraquem tem recur$o$
  • 17.
    Integração contínua paraquem tem recur$o$
  • 18.
    Integração contínua paraquem tem recur$o$ http://www.hamang.net/index.php?option=com_content&task=view&id=16&Itemid=9
  • 19.
  • 20.
    O que vocêprecisa? Servidor de Builds Servidor de Controle de Código (CVS, SVN, etc…) Processo bem definido Ferramentas (CruiseControl, Ant, etc...) Responsabilidades do desenvolvedor Atualizar o repositório frequentemente. O código deve ser compilável O código deve ter testes unitários
  • 21.
    Resumo Builds Noturnos(ou Diários) é um boa prática, mas Integração Contínua é melhor! Integração Contínua não elimina os bugs , porém torna a tarefa de localizá-los mais fácil e rápida. CruiseControl viabiliza a Integração Contínua, porém a disciplina da equipe de desenvolvimento é a chave . Automatização reduz custos, melhora a visibilidade e deixa menos espaço para erros humanos .
  • 22.
  • 23.
    Links Martin Fowlerexplica os princípios da Integração Contínua: http://www.martinfowler.com/articles/continuousIntegration.html CruiseControl: http://cruisecontrol.sourceforge.net/ Plugin para Firefox: http://www.md.pp.ru/mozilla/cc/ Esses modestos slides: http://www.luthiano.com