Potrafię wymyślić kilka rozwiązań, ale żaden nie jest doskonały.
Jedna: Możesz stworzyć prostą aplikację, która przetłumaczy normalny hak do rozmieszczenia Heroku na format akceptowany przez Travis. Oczywiście musisz go gdzieś umieścić, ale jest to świetny przypadek użycia dla Amazon Lambda lub podobnego rozwiązania. Jeśli kiedykolwiek chciałeś spróbować bez serwera, myślę, że masz doskonały przypadek. Koszt hostingu będzie prawie zerowy.
Po drugie: Możesz użyć fazy zwalniania na Heroku. Utwórz skrypt bin/notify-travis
i prześlij go do swojego Procfile release: bin/notify-travis
. Problem polega na uzyskaniu wszystkich informacji o wdrożonym kodzie, takim jak commit sha. W tym celu można włączyć funkcję laboratorium o nazwie dyno-metadata
. Wprowadzi dodatkowe zmienne konfiguracyjne, jedna to HEROKU_SLUG_COMMIT
, która zawiera commit sha. Jeśli wymaganych jest więcej danych, to rozwiązanie może nie działać. Upewnij się, że bin/notify-travis
zwraca 0. Będzie działał tuż przed wdrożeniem. A jeśli się nie powiedzie, twój kod nie zostanie wdrożony.
Trzy: Możesz znaleźć lub napisać niestandardowy buildpack, który wyśle webhook do Travis. Problem polega na tym, że będzie działał podczas fazy budowy. W przypadku błędów Twój kod może nie zostać wdrożony, ale wyślesz webhook. A także problematyczne może być uzyskanie wszystkich wymaganych informacji o kompilacji, tak jak w drugim rozwiązaniu.
Masz kilka opcji. Domyślam się, że pierwszy jest najlepszy, ale może nie pasować do twoich pozostałych wymagań.
Jeśli jesteś zainteresowany pójściem z podejściem nr 1 od odpowiedzi Michała, możesz to zrobić [viaSOCKET] (https://viasocket.com). Jestem jednym z jego programistów. Nie musisz tworzyć niestandardowej aplikacji ani niczego wdrażać. – 31piy