Capítulo 1 O que é Jenkins?
Jenkins é um motor de integração contínua e escalável.
Principalmente usado para:
- Construa/teste continuamente e automaticamente projetos de software.
- Monitoro algumas tarefas que são realizadas regularmente.
Características que Jenkins possui incluem:
- Fácil de instalar - basta implantar o jenkins.war em um contêiner servlet sem suporte a banco de dados.
- Fácil de configurar - todas as configurações são feitas pela interface web fornecida por ele.
- O RSS/E-mail integrado publica os resultados da compilação via RSS ou notificações por e-mail quando a build está concluída.
- Eu gero relatórios de testes JUnit/TestNG.
- O suporte distribuído para build Jenkins permite que múltiplas máquinas construam/testem juntas.
- L Reconhecimento de arquivos: Jenkins pode acompanhar quais jars são gerados por qual build, qual versão do jar é usada por qual build, etc.
- Suporte a plugins: Extensões são suportadas, então você pode desenvolver ferramentas que se encaixem no uso da sua equipe.
1 Origem de Jenkins
A integração contínua (CI) tornou-se uma prática comum para muitas equipes de desenvolvimento de software focarem em garantir a qualidade do código durante todo o ciclo de vida do desenvolvimento. É uma prática projetada para facilitar e solidificar o processo de construção de software. E pode ajudar sua equipe de desenvolvimento a enfrentar desafios como:
- Automação de Construção de Software: Após a conclusão da configuração, o sistema de CI construirá o software alvo de acordo com o cronograma predeterminado ou para um evento específico.
- Construir verificações automatizadas sustentáveis: O sistema de CI pode obter continuamente código-fonte de check-in novo ou modificado, ou seja, quando a equipe de desenvolvimento de software precisa verificar periodicamente o código novo ou modificado, o sistema de CI confirmará constantemente se o novo código interrompeu a construção bem-sucedida do software original. Isso reduz o tempo e esforço que os desenvolvedores gastam verificando mudanças em seu código interdependente (para ser direto, hehe).
- Construir testes automatizados sustentáveis: construir uma parte estendida da verificação, executar um conjunto pré-definido de regras de teste após a construção e acionar notificações (e-mail, RSS, etc.) para as partes relevantes após a conclusão.
- L Automação de processos subsequentes após geração: Quando verificações e testes automatizados são concluídos com sucesso, tarefas adicionais podem ser necessárias no ciclo de construção do software, como gerar documentação, empacotar software e implantar componentes em um tempo de execução ou repositório de software. Isso permite que os componentes fiquem disponibilizados aos usuários mais rapidamente.
- Os requisitos mínimos exigidos para implantar um sistema de CI são um repositório de código-fonte disponível e um projeto com scripts de build.
O diagrama a seguir resume a estrutura básica de um sistema de CI:
Os componentes do sistema estão funcionando na seguinte ordem:
1. O desenvolvedor verifica o código no repositório de código-fonte.
2. O sistema de CI cria um espaço de trabalho separado para cada projeto. Quando uma nova build é pré-definida ou solicitada, ela armazenará o código-fonte do repositório para o espaço de trabalho correspondente.
3. O sistema de CI executará o processo de compilação no espaço de trabalho correspondente.
4. (Se a Configuração Existir) Uma vez que a build é concluída, o sistema CI realiza um conjunto definido de testes em um novo artefato. Acione notificações (E-mail, RSS, etc.) para as partes relevantes ao concluir.
5. (Configuração, se presente) Se a compilação for bem-sucedida, esse artefato é empacotado e transferido para um destino de implantação (por exemplo, servidor de aplicação) ou armazenado como uma nova versão no repositório de software. Um repositório de software pode fazer parte de um sistema de CI ou de um repositório externo, como um servidor de arquivos ou um site como Java.net, SourceForge, etc.
6. O sistema de CI geralmente inicia ações correspondentes com base em requisições, como builds instantâneos, geração de relatórios ou recuperação de alguns artefatos construídos.
Jenkins é um desses sistemas de CI. Anteriormente conhecido como Hudson.
Aqui estão alguns motivos para usar o Jenkins:
- É o mais fácil de instalar e configurar entre todos os produtos de CI.
- Baseado no acesso à web, a interface do usuário é muito amigável, intuitiva e flexível, e em muitos casos fornece feedback instantâneo do AJAX.
- O Jenkins é desenvolvido em Java (o que é muito útil se você for um desenvolvedor Java), mas não se limita a construir softwares baseados em Java.
- O Jenkins tem uma grande quantidade de plugins. Esses plugins expandem muito a funcionalidade do Jenkins; Todos são open source e podem ser instalados e gerenciados diretamente pela interface web.
1.1 Objetivos de Jenkins O principal objetivo de Jenkins é monitorar o processo de desenvolvimento de software e revelar rapidamente os problemas. Portanto, pode garantir que desenvolvedores e profissionais relacionados economizem tempo e esforço e melhorem a eficiência do desenvolvimento.
O papel principal do sistema de CI durante todo o processo de desenvolvimento é o controle: quando o sistema detecta uma alteração no repositório de código, delega a tarefa de executar a compilação ao próprio processo de compilação. Se a compilação falhar, o sistema CI notifica a pessoa relevante e continua monitorando o repositório. Seus personagens parecem ser passivos; Mas isso reflete o problema rapidamente.
Em particular, possui as seguintes vantagens:
- L Jenkins Todas as configurações podem ser feitas na interface web. Algumas configurações, como MAVEN_HOME e e-mail, só precisam ser configuradas uma vez, e todos os projetos podem ser usados. Claro, também pode ser configurado modificando o XML.
- L Módulos que suportam Maven, o Jenkins otimizou o Maven, para que ele possa reconhecer módulos automaticamente, e cada módulo possa ser configurado como um trabalho. Bem flexível.
- L Agregação de relatórios de teste, os relatórios de teste de todos os módulos são agregados juntos, e os resultados são claros à primeira vista, usando outros CIs, o que é uma tarefa quase impossível.
- O Artefact Fingerprint, o resultado de cada build é bem gerenciado automaticamente, e pode ser facilmente navegado e baixado sem nenhuma configuração.
|