Processo de Release da Plataforma
Etapa 1: Revisão
Fazer um breve ritual junto com a equipe para listar todas as mudanças que ocorreram, se houve mudança em variável de ambiente, se houve criação de nova stack, mudança na UI, etc. Aproveitar o apanhado para elaborar um release notes que será usado na criação da release no Publicador.
Etapa 2: Gerar Baseline
-
Revisar cada projeto no Git e fazer o merge do branch
Desenvolvimentopara o branchMaster, quando existir. No Publicador utilizar a tela de Novos CommitsDica
Se estiver confuso, usar o gráfico visual do Gitlab em Repository > Graph (vide exemplo)
-
Aguardar que os pipelines finalizem com sucesso para que as imagens sejam construídas e publicadas no ambiente de Desenvolvimento do Estaleiro.
-
Utilizador o Publicador para criar uma Release, que vai passar uma tag em todos os projetos.
- No Nome, seguir o padrão
Release Major.Minor.Patch(Ex: Release 17.0.3). - No Mnemônico, informar o nome da tag que vai ser passada no Git. Seguir o padrão
release-major.minor.path(Ex: release-17.0.3). - Na Mensagem da Tag, informar um título para o release notes (Ex: criação da release 17, fix da release 17)
- Nas Notas da Release, informar o que está subindo.
- No Nome, seguir o padrão
Etapa 3: Distribuição de stack (se alterada)
No pipeline do projeto quarkus-stack, acionar o job manual final-dist-src que vai mandar o código pro CEPH e em seguida vai acionar automaticamente o job final-build que vai buildar a imagem no estaleiro.
-
Pode ocorrer erro no build a imagem se já existir essa imagem construída. Se for uma correção, apagar a imagem juá gerada pelo Console do Estaleiro e mandar executar o Job novamente. Senão, ignorar.
Atenção!
A stack nova, mesmo que já tenha imagem construída e código-fonte gravado no CEPH, só vai ficar disponível no ambiente após o Serprobots.Migrations ser executado nele alterando o banco para que essa seja a stack vigente.
Etapa 4: Distribuição da UI (se alterada)
-
No pipeline do projeto web-angular, acionar o job manual dist-h que vai mandar o código pro CEPH do ambiente H.
-
No pipeline do projeto web-angular, acionar o job manual dist-p que vai mandar o código pro CEPH do ambiente P.
Atenção!
A UI alterada passa ficar disponível para novos deploys no ambiente tão logo seja distribuída, mas só será contemplada pelos usuários após uma nova publicação. Se houver alguma equipe aguardando a mudança, orientar para que republiquem o chatbot.
Etapa 5: Promoção dos módulos nos ambientes
-
Utilizando o Publicador, publicar a Release no ambiente de Desenvolvimento (apenas para deixá-lo com as builds corretas, caso alguma build nova tenha entrado depois da criação da Release).
Acompanhar log
Você pode acompanhar o log do publicador no estaleiro para ver se não houve nenhum problema ou anormalidade:
estaleiro logs -f -s serprobots d publisher -
Depois publicar a Release no ambiente de Homologação e testar. Conferir se ficou tudo certo e identificar necessidades de configurações no ambiente como preenchimento de ENV VARs. Tomar notas para aplicar configurações também no ambiente de Produção.
-
Por fim publicar a Release no ambiente de Produção e testar com algum bot da própria equipe (Ex: test gateway privado)
Integração Canais
Em caso de mudanças substanciais no Integrador Canais, observar se os chatbots com canais Whatsapp, Facebook e Twitter continuaram funcionando.
Novos parâmetros
Em caso de terem sido criados novos pârametros obrigatórios para os componentes/canais, pode ser preciso que os usuários visitem o componente/canal e definam o valor ou pelo menos salvem o formulário para que o valor default seja assumido. A tela de Publicar irá apontar esse erro, mas nem sempre fica claro para os usuários o que devem fazer, logo pode ser preciso orientá-los ou gerenciar a questão de outra forma.
Etapa 6: Finalização
-
Avisar no chat.serpro sobre a publicação da nova Release.
Exemplo de mensagem:
@all
Liberamos uma nova release da plataforma Serprobots.
As novidades são:
* Nova funcionalidade de Testes Automatizados para os chatbots na interface de Curadoria
* Nova funcionalidade de Versionamento do fluxo para os chatbot
* Atualização de informações na Tela Comercial
* Implementação de política de quotas de consumo nos chatbots
* Evolução no tratamento das chamadas à webhooks
* Evolução na integração com Whatsapp para suportar a Cloud API
* Melhorias no código a janela de chat do canal Web e no trigger.
* Resolução de bugs
Foi liberada a stack nova (versão 1.0.17). Lembramos que é possível atualizar o fluxo para a nova versão da stack apenas seguindo os avisos em amarelo no topo da tela Componentes.
Para detalhes visite nossa documentação:
* https://serprobots.estaleiro.serpro.gov.br/docs
* https://serprobots.estaleiro.serpro.gov.br/guias