Eu estou querendo saber se existe uma maneira de forçar o Heroku a recompilar a lesma sem forçar novas confirmações e / ou atualizar as variáveis de configuração.
Por que eu gostaria de fazer isso ?:
Estou usando a pilha Cedar no Heroku para um aplicativo Rails 3.2 e estou tendo problemas com a rake assets:precompile
tarefa falhando (apenas durante a compilação - mais tarde, funciona bem com a heroku run
). Suspeito que isso ocorra devido ao fato de determinadas variáveis de ambiente não estarem disponíveis durante o tempo de compilação do slug, e acho que o heroku labs:enable user_env_compile
recurso experimental resolverá isso.
No entanto, com o user_env_compile
recurso ativado, as alterações de configuração não acionam uma recompilação do slug, e meu código não foi alterado, portanto, não tenho nenhum novo commit a ser enviado.
Claro, eu poderia enviar um commit "fictício" com uma alteração trivial, que provavelmente é a resposta mais simples - mas estou me perguntando se existe um comando heroku que me permita recompilar diretamente a lesma.
Obrigado!
Respostas:
A compilação do slug é chamada com um gancho de pré-recebimento do git, portanto, a única maneira de recompilar é enviar um novo commit.
Para detalhes, consulte este artigo no Heroku para o compilador slug . Ele discutiu o uso do gancho de pré-recebimento para chamar o processo de compilação de lesmas sob o cabeçalho Compilação.
fonte
repo:rebuild
não é mais um comando válido no plug-in, como pode ser visto aqui: github.com/heroku/heroku-repo/commit/…A solução mais simples por enquanto é enviar uma confirmação vazia .
fonte
git reset HEAD~; git push -f heroku master
. Incorre no custo de tempo de outra implantação do Heroku, mas no histórico limpo do FTW.~/.profile
add isto:alias heroku-rebuild="git reset HEAD~; git push -f heroku master"
oualias heroku-rebuild="git commit --allow-empty -m 'empty commit' && git push heroku master"
então você pode simplesmente digitarheroku-rebuild
Minha abordagem geral é fazer:
Não tenho certeza se eu faria isso na produção sem ter certeza, pois tecnicamente reescreve o último commit, mas não deve causar problemas na teoria. É perfeitamente bom quando você está testando coisas na preparação.
Como um bônus adicional, já que a maioria das pessoas tem problemas ao usar o Vim para editar mensagens de confirmação
SHIFT-ZZ
salvar e sair rapidamente da mensagem de confirmação para você sem fazer nenhuma alteração.Em uma nota relacionada, estou levemente chocado que o Heroku ainda não possui esse recurso. Eu sempre vi o Heroku falhar ao implantar devido a problemas.
Agradecemos a Michael Mior pela idéia de usar
-C HEAD
para evitar a abertura de um editor.fonte
git commit --amend -C HEAD
para evitar a abertura de um editor e manter a mensagem de confirmação igual.Heroku lançou um plugin que é perguntado: https://github.com/heroku/heroku-repo
Para instalá-lo:
Para forçar uma reconstrução:
fonte
Atualização: repo heroku: reconstruir foi removido .
O Heroku possui uma API de construção que você pode usar, consulte: Construindo e liberando usando a API
Você pode usar o comando repo: rebuild se o complemento heroku-repo .
https://github.com/heroku/heroku-repo
fonte
Parece que isso ainda não está disponível. No entanto, uma solicitação de recurso foi aberta no repositório heroku github
Ele também menciona "uma maneira alternativa de construir que não depende
git push
"https://github.com/ddollar/heroku-anvil
fonte
Existe um plugin heroku para isso.
fonte
Remova a ramificação e empurre-a novamente. Não há necessidade de usar um plugin.
fonte
git push --force
Deveria trabalhar :)fonte