Ir para o conteúdo

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

  1. Revisar cada projeto no Git e fazer o merge do branch Desenvolvimento para o branch Master, quando existir. No Publicador utilizar a tela de Novos Commits

    Dica

    Se estiver confuso, usar o gráfico visual do Gitlab em Repository > Graph (vide exemplo)

  2. Aguardar que os pipelines finalizem com sucesso para que as imagens sejam construídas e publicadas no ambiente de Desenvolvimento do Estaleiro.

  3. 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.

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)

  1. No pipeline do projeto web-angular, acionar o job manual dist-h que vai mandar o código pro CEPH do ambiente H.

  2. 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

  1. 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

  2. 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.

  3. 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

  1. 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