Przekompiluj Heroku slug bez zmiany push lub config
Zastanawiam się, czy istnieje sposób na zmuszenie Heroku do przekompilowania Sluga bez popychania nowych commitów i/lub aktualizacji zmiennych konfiguracyjnych.
Dlaczego miałbym to robić?:Używam stosu Cedar na Heroku dla aplikacji Rails 3.2 i mam problemy z niepowodzeniem zadania rake assets:precompile
(tylko podczas kompilacji --- później działa dobrze z heroku run
). Podejrzewam, że jest to spowodowane tym, że niektóre zmienne środowiskowe nie są dostępne podczas kompilacji Sluga i myślę, że heroku labs:enable user_env_compile
funkcja eksperymentalna rozwiąże ten problem.
Jednak przy włączonej funkcji user_env_compile
zmiany konfiguracji nie uruchamiają rekompilacji Sluga, a mój Kod się nie zmienił, więc nie mam żadnych nowych commitów do wypchnięcia.
Oczywiście, mógłbym wcisnąć" dummy " commit z trywialną zmianą, co jest prawdopodobnie najprostszą odpowiedzią - - - ale zastanawiam się, czy jest komenda heroku, która pozwoli mi bezpośrednio skompilować ślimaka.
Dzięki!9 answers
Kompilacja Slug jest wywoływana za pomocą Hooka git pre-recieve, więc jedynym sposobem na przekompilowanie jest wypchnięcie nowego commita.
Dla kompletności zobacz ten artykuł na Heroku dla kompilatora slug . Omówiono użycie haka wstępnego do wywołania procesu kompilacji slug pod nagłówkiem kompilacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-06 13:43:53
Najprostszym obejściem jest wypchnięcie pustego commita .
git commit --allow-empty -m "empty commit"
git push heroku master
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-26 18:19:55
Moje ogólne podejście to zrobić:
git commit --amend -C HEAD
git push heroku:master -f
Nie jestem pewien, czy zrobiłbym to w produkcji bez bycia pewnym, ponieważ technicznie przepisuje ostatni commit, ale nie powinno to powodować żadnych problemów w teorii. Jest to całkowicie w porządku, gdy testujesz rzeczy w inscenizacji.
Jako dodatkowy bonus, ponieważ większość ludzi ma problem z używaniem Vima do edycji komunikatów commit SHIFT-ZZ
szybko zapisze i zamknie wiadomość commit dla ciebie bez wprowadzania w niej żadnych zmian.
W powiązanej notce jestem lekko zszokowany Heroku nadal nie ma tej funkcji. Często widziałem, jak Heroku nie udaje się wdrożyć z powodu problemów po ich stronie.
Podziękowania dla Michaela Miora za pomysł użycia -C HEAD
, aby uniknąć otwarcia edytora.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-07 20:47:08
Aktualizacja: heroku repo: rebuild została usunięta .
Heroku ma wbudowane API, z którego możesz korzystać, Zobacz: Budowanie i uwalnianie za pomocą API
Możesz użyć komendy repo:rebuild jeśli jest to dodatek heroku-repo.
heroku repo:rebuild -a appname
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-26 18:28:18
Wygląda na to, że to nie jest jeszcze dostępne. Jednak, żądanie funkcji zostało otwarte na repo heroku github
Wspomina również o "alternatywnym sposobie budowania, który nie jest zależny od git push
"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-06 19:52:12
Heroku wydało plugin, o który prosi się: https://github.com/heroku/heroku-repo
Aby go zainstalować:
$ heroku plugins:install heroku-repo
Aby wymusić przebudowę:
$ heroku repo:purge_cache -a appname
$ heroku repo:reset -a appname
$ git push heroku
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-02 09:34:00
Istnieje wtyczka heroku do tego.
$ heroku plugins:install heroku-releases-retry
Installing plugin heroku-releases-retry... done
$ heroku releases:retry
Retrying v16 on murmuring-lowlands-3398... done, v17
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-04 02:44:51
Usuń gałąź, a następnie ponownie naciśnij. Nie trzeba używać wtyczki.
git push heroku :master
git push heroku master
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-30 21:48:45
git push --force
powinno działać:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-17 20:11:13