2016-05-30 22 views
2

Ich versuche, eine Website über CodeShip zu Heroku bereitzustellen. Die Seite wird mit Yeoman's Angular-Fullstack Generator gebaut, der zu GitHub geschoben wird. Codeship erkennt den Push, baut das Ganze auf und dann beginnt der Ärger.Bereitstellen von Angular-Fullstack App auf Heroku mit Codeship

Angular-Fullstack ist so eingerichtet, dass der Ordner dist/ die gesamte Heroku-App enthält. Daher funktioniert die Blindbereitstellung auf Heroku nicht. Lokal kann ich den Heroku-Toolbelt verwenden, um mich anzumelden, eine Remote im Ordner "dist" hinzufügen und dann grunt buildcontrol verwenden, um das gesamte Objekt für Heroku bereitzustellen.

Aber in Codeship gibt es ein paar Einschränkungen: * Ich wget die Heroku toolbelt nicht installieren kann, weil es sudo braucht und Codeship nicht unterstützt, dass * Wenn ich könnte, ich die CLI nicht Heroku anmelden könnte mit weil ich nicht mit der Shell in Codeship interagieren kann * Ich kann nicht in den Ordner dist/ gehen und nach dem Hinzufügen der Fernbedienung, drücken Sie einfach zu Heroku, weil ich meine Anmeldeinformationen eingeben müssen.

Gibt es einen Weg, den ich hier verpasst habe? Ich möchte, dass Codeship alles vom Aufbau über die Bereitstellung bis hin zu Heroku behandelt (nur in der Zweigstelle master).

Antwort

1

Ich habe es herausgefunden!

ausgelassen ich den Schritt, wo ich die Heroku Toolbelt zu installieren versuche, und habe soeben die repo auf Heroku als Fern:

git remote add heroku ssh://[email protected]/[your-heroku-app-name].git 

Codeship hat öffentlich für jeden Build verfügbare Tasten. Also habe ich diesen Schlüssel zu meinem Heroku-Konto hinzugefügt.

Dann bemerkte ich, dass Git noch versucht, mit HTTPS statt SSH zu schieben, so fügte ich dies den Deployment-Skript:

git config --global url.ssh://[email protected]/.insteadOf https://git.heroku.com/ 

Dies stellte sicher, dass Git die SSH-URL für Heroku verwendet. Ich ließ dann Codeship das gesamte Projekt erstellen und es mit grunt buildcontrol:heroku schieben.