Criar um pipeline do Heroku e executar aplicativos de revisão
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Descrever as opções disponíveis para pipelines.
- Descrever algumas vantagens dos Aplicativos de revisão.
Estágios do pipeline
Cada aplicativo em um pipeline representa uma destas etapas em um fluxo de trabalho de entrega contínuo: revisão, desenvolvimento, preparação e produção.
Os dois estágios com os quais a maioria dos desenvolvedores está familiarizada são:
-
Preparação: A preparação testa as alterações em um ambiente semelhante à produção antes de implantá-las na produção.
-
Produção: Os aplicativos no ambiente de produção estão disponíveis para seus usuários finais.
Além desses dois estágios, os desenvolvedores geralmente usam pelo menos um outro estágio para verificar alterações de código individuais e solicitações pull com mais facilidade. A maioria usa um dos seguintes estágios para esse tipo de teste:
-
Aplicativos de revisão: Essa opção só estará disponível se você usar a integração do GitHub e habilitar o recurso Aplicativos de revisão no pipeline. Um desenvolvedor envia suas alterações por push para criar um aplicativo temporário e compartilhável para testar uma solicitação pull específica. Sem esse recurso, os desenvolvedores podem enviar as alterações por push para o estágio de desenvolvimento para compartilhá-las.
-
Desenvolvimento: Um desenvolvedor faz e testa alterações de código em sua máquina local. Opcionalmente, ele pode enviar esse código por push para o estágio de desenvolvimento de um pipeline na Heroku para compartilhar com outras pessoas.
Você pode ter mais de um aplicativo em cada estágio de um pipeline. Por exemplo, você pode ter dois aplicativos de produção com a mesma base de código, mas implantados em regiões diferentes para reduzir a latência.
Para criar um pipeline e adicionar aplicativos a ele, consulte Pipelines no Centro de Desenvolvimento da Heroku.
Habilitar e usar Aplicativos de revisão
Se o seu código estiver no GitHub, você poderá se conectar ao seu repositório e habilitar Aplicativos de revisão para o seu pipeline. Em seguida, você pode optar por gerar manualmente ou automaticamente um aplicativo de teste temporário toda vez que alguém abrir uma nova solicitação pull. Os Aplicativos de revisão são destruídos automaticamente quando uma PR é fechada; você também pode escolher quando aplicativos obsoletos são excluídos para reduzir ainda mais seu uso. Consulte as instruções e os custos associados a esse recurso no Centro de Desenvolvimento da Heroku.
Aplicativos de revisão usam um arquivo app.json
para configurar seus aplicativos. Adicione esse arquivo ao seu código antes de ativar Aplicativos de revisão. Consulte a seção de configuração e o esquema app.json no Centro de Desenvolvimento da Heroku para obter mais detalhes.
O arquivo app.json
está incluído em seu código no GitHub, portanto, não adicione valores de variáveis de configuração que deseja manter em segredo. Em vez disso, defina esses valores como variáveis de configuração na guia Configurações do pipeline.
Como todos os aplicativos Heroku, cada aplicativo de revisão tem sua própria URL que você pode digitar no navegador para visualizá-lo. Você também pode clicar em Abrir aplicativo no navegador ao lado do aplicativo de revisão na página do pipeline para visualizar rapidamente suas alterações. Você pode optar por usar um padrão de URL aleatório ou previsível ao configurar seus aplicativos de revisão. Com uma URL previsível, a Heroku usa o prefixo escolhido e o número da solicitação pull para criar seu aplicativo. Por exemplo, se você escolher o prefixo exemplo-prefixo
, abrir o PR #123 criará um aplicativo de revisão em exemplo-prefixo-pr123.herokuapp.com
.
Habilitar a Heroku CI
O recurso de CI nativo da Heroku está disponível para habilitação em cada pipeline. Dynos e complementos usados durante as execuções de teste de CI contêm custos adicionais.
A integração do GitHub é necessária para usar a Heroku CI. Conecte seu pipeline ao seu repositório e habilite a Heroku CI na guia Configurações.
Configure seu ambiente Heroku CI incluindo um manifesto app.json
no diretório raiz do repositório. Durante as execuções de teste de CI, todas as chaves definidas no ambiente de teste
desse arquivo têm precedência sobre quaisquer chaves correspondentes na configuração base do aplicativo.
Configurar implantações automáticas para a preparação
Com a entrega contínua, cada alteração é enviada por push para a preparação. Habilite implantações automáticas em seu aplicativo de preparação para automatizar essa etapa sempre que o código for mesclado em uma ramificação específica.
Se você estiver usando a integração do GitHub, poderá configurar implantações automáticas na guia Implantar do aplicativo. Se você usar a Heroku CI, poderá configurá-la para que as implantações automáticas ocorram somente quando a Heroku CI passar. Consulte integração do GitHub para obter mais informações.
Promover aplicativos da preparação para a produção
Recomendamos que você implante usando a promoção de pipeline somente para aplicativos com compilações sem monitoração de estado. Os slugs são cópias compactadas e pré-empacotadas do seu aplicativo. Ao promover para a produção, a Heroku copia o slug da preparação sem fazer alterações. Ele não é recompilado para produção. As compilações que reúnem valores de variáveis de configuração no slug podem ter problemas quando promovidas. Para aplicativos com compilações com monitoração de estado, use a implantação padrão baseada em Git da Heroku ou as implantações do GitHub.
A página dos pipelines ajuda a visualizar o progresso dos aplicativos e as metainformações sobre o status de cada estágio. Por exemplo, você pode ver se seu aplicativo de produção está executando código diferente do aplicativo de preparação. Clique em Promover à produção no aplicativo de preparação que você deseja promover.
Você acabou de aprender como trabalhar com aplicativos em um pipeline. Em seguida, aprenderemos sobre a Fase de release e como os releases funcionam.
Recursos
-
Centro de Desenvolvimento da Heroku: Pipelines
-
Centro de Desenvolvimento da Heroku: Integração com o GitHub
-
Centro de Desenvolvimento da Heroku: Aplicativos de revisão
-
Centro de Desenvolvimento da Heroku: Heroku CI