0

Derzeit mein Einsatz sieht die Bereitstellung wie folgt:Was ist eine richtige Art und Weise über eine integrierte Version eines Projekts mit Codeship

  1. Nach lokalen Änderungen kommen, ich lokal ein Grunzen Aufgabe führen Sie das Projekt in eine /dist zu bauen Mappe.

  2. Dann schiebe ich sie zu bitbucket. z.B. Zweig Name ist Merkmal/Kaution

  3. In Bitbucket I Feature/Einzahlung in entwickeln Zweig fusionieren und Codeship baut entwickeln Zweig (Testläufe) und nach, dass der folgende Code ausgeführt:

    ssh [email protected] ' CD-Projekt/www; git checkout entwickeln; git pull Herkunft entwickeln; npm installieren; sudo monit Neustart project.app.js'

ich diesen Ansatz nicht mögen, weil es für mich wäre es viel mehr Sinn machen, die ich einsetzen, was Codeship gebaut. Codeship läuft npm install, und ich möchte es meine grunt:build Aufgabe ausführen und dann auf meinem Produktionsserver bereitstellen.

Ich habe eine article gefunden, die ein ähnliches Problem anspricht und den Export CI_COMMIT_ID = $ (git rev-parse HEAD) Aufgabe hinzugefügt. Aber ich weiß nicht genau, was ich damit in meinem Bereitstellungsskript machen muss. Außerdem wird dieses Beispiel mit heroku verwendet, während ich in meinem Fall ein benutzerdefiniertes Bereitstellungsskript verwende.

Ich fand auch ein Github Repo mit nützlichen deployment scrips und this one könnte meine Bedürfnisse entsprechen.

Aber was ich will, um herauszufinden, ist, wenn ich von der eingebauten Version (die, die gebaut Codeship) ziehen kann auf gleiche Art und Weise, wie ich es jetzt tun, aber git pull origin develop soll git pull aus, was Codeship nur

gebaut
+1

Darf ich fragen, warum Sie die gebaute App auch in Ihrem git-Repository behalten möchten? Die meisten unserer Benutzer folgen einem etwas anderen Ansatz: Lokale Änderungen übernehmen & zum Remote-Repository (GitHub/Bitbucket) schieben. Dies führt zu einem Build von Codeship, Codeship erstellt die App (zB über 'grunt'), führt Ihre Tests durch und stellt dann die App zum Beispiel über' rsync' oder durch Drücken auf Heroku/.... – mlocher

+0

@mlocher ich mache nicht wollen/dist in meinem Repo behalten. Ich mache es jetzt, aber ich möchte diesen Ansatz vermeiden. Können Sie bitte weitere Informationen dazu bereitstellen, wie ich rsync zur Bereitstellung mithilfe eines benutzerdefinierten Skripts verwenden kann? Vielen Dank! – user2814599

+0

@mlocher - Ich rate Ihnen, nur den eingebauten Server zu kopieren, ohne git dort zu verwenden? – user2814599

Antwort

0

Also habe ich am Ende einfach /dist Ordner-Code zum Produktionsserver kopieren. Ich habe Git vom Produktionsserver entfernt und /dist Ordner zu gitignore hinzugefügt. Codeship führt alle Befehle aus, einschließlich des zum Erstellen des Projekts, und kopiert es dann auf den Produktionsserver. Sehr schnelle und bequeme Art und Weise.

Continuous Deployment-Einstellungen:

rsync -avz -e "ssh" ~/src/bitbucket.org/username/project/dist/ [email protected]:/home/nodejs/project/www/dist 

/src/bitbucket.org/username/project/ - Sie können aus einem der Build-Schritte erhalten.