Entrega Contínua
Diversos princípios de Entrega Contínua são utilizados no projeto do Portal de Serviços. Nesta seção, descreveremos brevemente como eles estão implementados.
Integração Contínua
Utilizamos o Snap CI para realizar a execução de todos os testes e implantações necessários a cada push nos repositórios Git do projeto.
Os seguintes passos estão configurados no pipelines, com alguma variação dependendo do projeto:
TESTES
Roda todos os testes unitários, de integração, e as checagens estáticas (FindBugs, Checkstyle, etc.). Finalmente, publica os resultados do relatório de cobertura de testes no Coveralls. Todos os relatórios de execução também são publicados como artefatos, que podem ser baixados em formato HTML e XML.
PACOTES
Cria um arquivo JAR contendo todas as dependências do projeto (uberjar) necessárias para a execução da apliação, e embute este JAR em um arquivo RPM específico para nossa plataforma-alvo (CentOS 7 x64). Este RPM é então publicado em um repositório Yum, e fica disponível para instalação e atualização.
DEV
(Re)instala o pacote RPM gerado no passo anterior em uma imagem Docker baseada no CentOS 7 x64, e reinicia a aplicação rodando no ambiente de teste, bem como outros serviços necessários. Após alguns segundos, a nova versão da aplicação está pronta para receber requisições.
DOCS
Atualiza a branch gh-pages
, utilizada pelo Github Pages com o resultado da compilação da documentação (localizada no diretório docs
) pelo Gitbook. Esta fica disponível em servicosgovbr.github.io.
AVISO
Anuncia o fim do processo na sala de bate-papo do Gitter.