Executar tarefas com a fase de release
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Descrever como configurar tarefas na fase de release.
- Descrever como verificar a atividade e os logs relacionados a releases.
Usar a fase de release
A fase de release opcional possibilita a execução de tarefas antes de implantar um novo release.
Casos de uso
As tarefas comuns executadas durante esta fase incluem:
- Enviar CSS, JS e outros ativos para uma rede de entrega de conteúdo (CDN) ou particionamento AWS S3.
- Preparar ou invalidar armazenamentos em cache.
- Executar migrações de esquema de banco de dados.
Especificar tarefas da fase de release
Seu aplicativo pode usar o processo de release para executar tarefas de fase de release em um dyno único. Para especificar tarefas, adicione-as ao Procfile do aplicativo. Adicione um tipo de processo de release
ao arquivo, juntamente com o comando a ser executado.
Por exemplo, para um aplicativo Django, veja como especificar uma migração de banco de dados em seu arquivo:
release: python manage.py migrate
Se você implanta imagens do Docker na Heroku, saiba mais sobre como usar a fase de release com o Container Registry.
Quando ocorre a fase de release?
As tarefas da fase de release são executadas a cada novo release, a menos que o release seja causado por alterações nas variáveis de configuração de um complemento. Todos os eventos a seguir criam um release:
- Uma compilação de aplicativo bem-sucedida
- Uma alteração no valor de uma variável de configuração
- Uma promoção de pipeline
- Uma reversão
- Um release através da API da plataforma
- Provisionar um novo complemento
Os dynos de aplicativos não começam para um novo release até que a fase de release termine com êxito. Se uma tarefa da fase de release falhar, o novo release não será implantado.
Reverter um release
Se você implantar código com bugs na produção, reverta as alterações de código relevantes localmente com o git revert
e implante novamente.
Se você precisar reverter um release devido a uma configuração incorreta ou a outros problemas específicos da plataforma Heroku, use o comando heroku rollback
. Este comando reverte seu aplicativo para um release v40 anterior:
heroku rollback v40 Rolled back to v40
Se você não especificar um número de release, seu aplicativo será revertido em um único release.
O comando heroku rollback
cria um novo release. Este release copia o slug compilado e as variáveis de configuração do release para o qual você está revertendo.
Verificar o status do release
Para verificar o status de um release, incluindo releases com falha e pendentes devido a uma fase de release de longa duração, execute heroku releases
.
heroku releases === example-app Releases - Current: v52 v53 Deploy ad7c527 release command failed example@heroku.com v52 Deploy b41eb7c example@heroku.com v51 Deploy 38352d3 example@heroku.com
Use o comando heroku releases:output
para ver o resultado de uma execução de fase de release específica:
heroku releases:output v40 --- Migrating db --- INFO [alembic.runtime.migration] Context impl PostgresqlImpl. INFO [alembic.runtime.migration] Will assume transactional DDL.
Verificar os logs do release
Acesse os logs associados a um release na guia Atividade do seu aplicativo. Clique em Exibir log do release ao lado do release que você deseja exibir.
Recursos