Dans cette leçon, nous allons nous concentrer sur le flux de travail. Plus précisément, nous utiliserons les points d’accès au service GitHub pour mettre à jour automatiquement un projet sur notre serveur personnel chaque fois que nous envoyons des mises à jour vers un dépôt GitHub.
Nous avons certainement besoin d'une sorte de projet avec lequel jouer, pas vrai? Faisons-le maintenant. En utilisant l’outil que vous préférez (je recommanderais Structurer), créez un nouveau répertoire, appelé génialProject
, et ajouter un index.html
fichier. N'hésitez pas à y ajouter un balisage de charabia pour le moment.
Avec notre répertoire de test en place, créons notre premier commit Git.
Si vous n'êtes pas familier avec Git, je vous recommande vivement de commencer par passer en revue le "Contrôle de version facile avec Git".
Ouvrez la ligne de commande:
chemin cd / vers / awesomeProject git init git add. git commit -m 'Premier commit'
Ceux qui connaissent Git devraient se sentir chez eux. Nous créons un dépôt Git, en ajoutant tous les fichiers dans la zone de transfert, puis créons notre premier commit..
La prochaine étape consiste à télécharger notre projet sur GitHub. De cette façon, nous pouvons facilement appeler un git pull
télécharger ce projet depuis n'importe quel ordinateur / serveur de notre choix.
Encore une fois, si vous n'êtes pas familier avec GitHub et que vous n'avez pas encore créé de compte, lisez Terminal, Git et GitHub pour le reste de nous..
Commencez par créer un nouveau référentiel Git.
Ensuite, vous devrez fournir quelques détails sur votre projet. C'est simple:
Enfin, puisque nous travaillons déjà avec un référentiel Git existant, nous n’avons besoin que d’exécuter:
git remote ajouter l'origine [email protected]: votre nom d'utilisateur / awesomeProject.git git push -u origine master
Avec cela sur le chemin, notre génialProject
est maintenant disponible sur GitHub. C'était facile!
Maintenant, nous avons certainement besoin d’une sorte d’aperçu en direct de notre projet, idéalement stocké sur notre propre serveur. Mais cela peut parfois être pénible. Diffusez vos mises à jour vers GitHub, connectez-vous à votre serveur, transférez manuellement le répertoire mis à jour, etc. Accordez-vous, cela ne prend que quelques instants, mais lorsque vous effectuez plusieurs modifications tout au long de la journée, cela peut rapidement devenir un fardeau..
Mais un pas à la fois. Nous aborderons ce dilemme à l’étape 4. Pour l’instant, ajoutons simplement notre dépôt Git à notre serveur. Pour ce faire, nous devons SSH dans.
Selon votre hôte, vos informations d'identification SSH varieront légèrement. Effectuez une recherche dans Google pour "votre nom d’hôte SSH" et vous trouverez sûrement les instructions nécessaires. Une fois que vous êtes prêt, avançons:
Nous allons utiliser mon serveur personnel comme exemple:
ssh [email protected]
Et avec ces deux lignes, nous sommes en!
Ensuite nous CD
dans le répertoire parent de l'endroit où nous souhaitons stocker génialProject
. Pour moi, ce sera: domaines cd / demo.jeffrey-way.com / html /
. Bien sûr, modifiez ceci en fonction de votre propre structure de répertoires.
Clonons maintenant le repo GitHub.
git clone [email protected]: votre nom d'utilisateur / awesomeProject.git
Donnez à cette commande quelques secondes, mais, avant de vous en rendre compte, ce répertoire est maintenant disponible sur votre serveur et, dans mon cas, peut être consulté à l'adresse suivante: http://demo.jeffrey-way.com/awesomeProject
.
Le problème inhérent à ce stade est qu’il n’ya pas de connexion spécifique entre notre référentiel GitHub et le répertoire stocké sur notre serveur - du moins pas une connexion automatisée. Par exemple, si nous mettons à jour nos fichiers source sur notre machine locale, puis transmettons les modifications à GitHub:
git add index.html git commit -m 'Ajout d'une photo du poulet dansant' Le maître d'origine de git push
Ces changements ne seront certainement pas reflétés sur notre serveur. Bien sûr qu'ils ne le feront pas! Pour ce faire, nous devons - encore une fois - SSH sur notre serveur, CD
au génialProject
répertoire et effectuer une autre git pull
apporter les fichiers sources mis à jour.
Ne serait-il pas formidable que, chaque fois que nous envoyions des mises à jour vers GitHub, ces nouveaux fichiers sources soient automatiquement mis à jour sur notre serveur de prévisualisation en direct?
En fin de compte, nous pouvons le faire assez facilement avec les crochets de service GitHub.
Vous pouvez accéder à cette page en cliquant sur le bouton "Admin" depuis votre dépôt GitHub, puis en cliquant sur "Crochets de service". L'option "URL de post-réception" demandera à GitHub d'envoyer une demande POST à la page spécifiée chaque fois que vous le déplacerez sur votre référentiel GitHub. C'est exactement ce dont nous avons besoin!
"Nous allons utiliser ces requêtes avec des requêtes POST lorsque vous nous envoyez des informations, en nous transmettant des informations sur les actions."
Pour que cela fonctionne, nous devrons créer un fichier supplémentaire qui gérera le processus d’exécution du processus. git pull
. Ajouter un nouveau fichier, appelé github.php
(ou tout ce que vous souhaitez - de préférence plus vague), et ajoutez:
Alors maintenant, vous pensez: "Jeff est devenu fou. Vous ne pouvez pas mettre un script Bash dans une chaîne PHP." Bien? oui vous pouvez, une fois que vous vous rendez compte que ce ne sont pas des guillemets simples ci-dessus, ils sont back-ticks.
Lorsque vous encapsulez une séquence en arrière-points, en PHP, elle sera traitée comme un script Bash. En fait, c'est identique à utiliser la fonction bash_exec.
Enregistrez ce fichier et téléchargez-le sur le
génialProject
répertoire sur votre serveur. Lorsque vous avez terminé, copiez l'URL dans ce fichier et collez-le dans la zone de texte "URL de post-réception". Dans mon cas, l'URL seraithttp://demo.jeffrey-way.com/awesomeProject/github.php
.Avec cela en place, chaque fois que vous
pousser
dans votre dépôt GitHub, ce fichier sera appelé, et legénialProject
répertoire sur votre serveur se mettra à jour automatiquement, sans que vous ayez à déplacer un doigt. Assez chouette, ay?
Vous pourriez également apprécier: