Перекомпилируйте Heroku slug без нажатия или изменения конфигурации
мне интересно, есть ли способ заставить Heroku перекомпилировать slug без нажатия новых коммитов и/или обновления переменных конфигурации.
зачем мне это делать?:
Я использую Кедровый стек на Heroku для приложения Rails 3.2, и у меня возникли проблемы с rake assets:precompile сбой задачи (только во время компиляции - - - позже он отлично работает с heroku run). Я очень подозреваю, что это связано с тем, что некоторые переменные среды недоступны во время slug время компиляции, и я думаю heroku labs:enable user_env_compile экспериментальная функция решит эту проблему.
однако, с user_env_compile функция включена, изменения конфигурации не вызывают перекомпиляцию слизняка, и мой код не изменился, поэтому у меня нет никаких новых коммитов для нажатия.
конечно, я мог бы нажать" фиктивную " фиксацию с тривиальным изменением, что, вероятно, является самым простым ответом - - - но мне интересно, есть ли команда heroku, которая позволит мне напрямую перекомпилировать слизняк.
спасибо!
9 ответов:
компиляция Slug вызывается с помощью Git pre-recieve hook, поэтому единственный способ перекомпилировать-это нажать новую фиксацию.
для полноты смотрите эту статью на Heroku для компилятор слаг. Он обсудил использование предварительно получить крюк, чтобы вызвать процесс компиляции слаг по составлению заголовка.
самый простой обходной путь на данный момент является нажмите пустую фиксацию.
git commit --allow-empty -m "empty commit" git push heroku master
мой общий подход заключается в следующем:
git commit --amend -C HEAD git push heroku:master -fне уверен, что я сделаю это в производстве, не будучи уверенным, поскольку он технически переписывает последний коммит, но теоретически это не должно вызывать никаких проблем. Это совершенно нормально, когда вы тестируете вещи в постановке, хотя.
в качестве дополнительного бонуса, так как большинство людей проблемы с использованием Vim для редактирования сообщений фиксации
SHIFT-ZZбыстро сохранит и выйдет сообщение фиксации для вас без внесения каких-либо изменений оно.на соответствующей ноте я слегка шокирован Heroku все еще не имеет этой функции. Я часто видел, как Heroku не удается развернуть из-за проблем на их конце.
спасибо Майклу Миору за идею использовать
-C HEADчтобы избежать открытия редактора.
обновление: heroku repo: восстановление было удалены.
Heroku имеет API сборки, который вы можете использовать, см.:создание и выпуск с помощью API
можно использовать РЕПО:восстановить если heroku-repo надстройки.
heroku repo:rebuild -a appname
похоже, что это еще не доступно. Однако,запрос был открыт на Heroku GitHub repo
Он также упоминает " альтернативный способ построения, который не зависит от
git push"
Heroku выпустили плагин, который то, что спрашивается:https://github.com/heroku/heroku-repo
чтобы установить его:
$ heroku plugins:install heroku-repoчтобы заставить перестроить:
$ heroku repo:purge_cache -a appname $ heroku repo:reset -a appname $ git push heroku
есть в Heroku плагин для этого.
$ heroku plugins:install heroku-releases-retry Installing plugin heroku-releases-retry... done $ heroku releases:retry Retrying v16 on murmuring-lowlands-3398... done, v17