Подтвердить что ты не робот

Перекомпилируйте иглу Heroku без изменения или изменения конфигурации

Мне интересно, есть ли способ заставить Heroku перекомпилировать слизню, не нажимая новые коммиты и/или обновляя конфигурационные переменные.

Почему я хочу это сделать?:

Я использую стек кедра на Heroku для приложения Rails 3.2, и у меня возникают проблемы с выполнением задачи rake assets:precompile (во время компиляции --- позже он отлично работает с heroku run). Я очень подозреваю, что это связано с тем, что некоторые переменные среды не доступны во время компиляции пули, и я думаю, что экспериментальная функция heroku labs:enable user_env_compile решит это.

Однако, если функция user_env_compile включена, изменения в конфигурации не вызывают перекомпиляцию пула, а мой код не изменился, поэтому у меня нет новых коммитов, чтобы нажать.

Конечно, я мог бы нажимать "dummy" commit с тривиальным изменением, что, вероятно, является самым простым ответом --- но мне интересно, есть ли команда heroku, которая позволит мне перекомпилировать пул напрямую.

Спасибо!

4b9b3361

Ответ 1

Компиляция slug вызывается с помощью git pre-recieve hook, поэтому единственный способ перекомпиляции - нажать новый коммит.

Для полноты см. эту статью о Heroku для компилятора slug. В нем обсуждалось использование предварительного захвата для вызова процесса компиляции пули в заголовке компиляции.

Ответ 2

Простейшим обходным решением на данный момент является нажать пустую фиксацию.

git commit --allow-empty -m "empty commit"
git push heroku master

Ответ 3

Мой общий подход:

git commit --amend -C HEAD
git push heroku:master -f

Не уверен, что я сделал бы это в производстве, не будучи уверенным, так как он технически переписывает последнее коммандит, но он не должен вызывать никаких проблем в теории. Это прекрасно, когда вы тестируете вещи в стадии разработки.

В качестве дополнительного бонуса, поскольку большинство людей сталкиваются с проблемой использования Vim для редактирования сообщений о фиксации, SHIFT-ZZ быстро сохранит и выйдет из сообщения фиксации для вас, не внося никаких изменений в него.

В связи с примечанием я слегка шокирован, у Героку все еще нет этой функции. Я часто видел, что Heroku не удалось развернуть из-за проблем с их конца.

Спасибо Майклу Миору за идею использовать -C HEAD, чтобы не открывать редактор.

Ответ 5

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

Ответ 6

Похоже, это еще не доступно. Тем не менее, запрос функции был открыт на геройку github repo

В нем также упоминается "альтернативный способ построения, который не зависит от git push"

https://github.com/ddollar/heroku-anvil

Ответ 7

Для этого есть плагин heroku.

$ heroku plugins:install heroku-releases-retry
Installing plugin heroku-releases-retry... done
$ heroku releases:retry
Retrying v16 on ⬢ murmuring-lowlands-3398... done, v17

Ответ 8

попробуй это

git push heroku HEAD:master -f

Ответ 9

Удалите ветку, затем снова нажмите ее. Не нужно использовать плагин.

git push heroku :master
git push heroku master

Ответ 10

git push --force должен работать:)