2016-05-20 7 views
0

Ich habe überall nach einer Antwort auf diese Frage gesucht. Ich weiß, dass es schon Fragen wie diese gibt, aber ich kann keine klare Antwort finden.Git automatisch vom Repository in Staging-Server ziehen?

Wie kann ich automatisch von einem Github-Repository in meinen Staging-Server ziehen?

Ich habe meine lokalen Dateien, die ich in mein Repository drängen, aber dann möchte ich diese Dateien automatisch in meinen Staging-Server gezogen werden.

Mein ssh-Bereitstellungsschlüssel ist in meinem GitHub-Konto richtig eingerichtet. Jedes Mal, wenn ich in meinen Staging-Server stehe und einen manuellen Befehl git pull mache ... funktioniert es gut. Aber jetzt möchte ich, dass das automatisch ist.

habe ich eine Webhook in meinem GitHub Konto mit einer Nutzlast URL, die mit diesem Code in eine PHP-Datei verweist, aber ich glaube nicht, seine Arbeits:

<?php `git pull [email protected]:user/repo.git`; ?> 

Ich bin nicht sicher, ob ich Setup die Webhook richtig .

Kann mir bitte jemand helfen?

+0

der erste sollte ein Klon sein, sollte der Rest ein Pull sein – Farkie

+0

wird, dass es beginnen, automatisch zu arbeiten? – stalwil

+0

Sie könnten so etwas wie crontab konfigurieren, um den Repo Ihres Staging-Servers von Github alle paar Minuten zu aktualisieren. Wenn Sie weiter gehen wollen, könnte ein CI-Tool wie Jenkins viel helfen. Jenkins bietet eine Reihe von Build-Trigger-Plugins zur Überwachung Ihres Github-Repos. Ein Jenkins-Job kann durch die Zeit oder Ereignisse in Ihrem Github-Repo ausgelöst werden. Sie können definieren, was in einem Job zu tun ist. – ElpieKay

Antwort

0

folgendermaßen vor

1) in der Staging-Server eine Datei namens githubupdate.php erstellen und unterhalb dem Inhalt in der Datei

<?php `git pull`;?> 

2 jetzt hinzufügen) auf GitHub Konto gehen und Ihre Repo-Einstellungen öffnen 3) Klicken Sie auf Webhooks und addwebhook, im Webhook müssen Sie obige URL hinzufügen z. B. http://www.yoursite.com/githubupdate.php 4) jetzt versuchen, von lokalen drücken und überprüfen Sie die Arbeit?

1

Wenn sich das Bereitstellungsskript in einem anderen Verzeichnis befindet, stellen Sie sicher, dass die CD in das richtige Verzeichnis auf dem Staging-Server kopiert wird.

<?php `cd /your/repo/location && git pull`; ?>