Comment puis-je automatiquement déployer mon application après un git push ( GitHub et node.js)?
J'ai mon application (node.js) déployé sur un VPS (linux). J'utilise git hub comme un référentiel. Comment puis-je déployer l'application automatiquement, sur git push ?
- avez-vous vérifié git crochets progit.org/book/ch7-3.html, et aussi sur github help.github.com/test-webhooks
- Mise à jour pour progit lien ci-dessus: git-scm.com/book/en/Customizing-Git-Git-Hooks
- Git 2.10 va ajouter une fonctionnalité intéressante: appuyez sur options stackoverflow.com/a/38770670/6309
Vous devez vous connecter pour publier un commentaire.
Exemple en PHP:
Naviguer vers github dans votre dépôt github ajouter cliquez sur "Admin"
cliquez sur l'onglet "Service Crochets' => 'WebHook Url
et ajouter
puis créer git_test.php
Dans le build.sh vous aurez besoin de mettre de commandes habituelles pour récupérer votre site à partir de github
Il y avait un peu parlé de Git crochets en tant que réponses/commentaires, ce qui a fonctionné pour moi dans le passé.. donc voici ma recette de quelqu'un d'autre nécessitent obtenir plus de précisions.
- Je utiliser une combinaison de la git post-recevoir crochet et nœud-superviseur pour accomplir la simple auto de déploiement (en supposant que vous êtes à l'aide d'un git remote repository sur cette machine).
Installation De Votre Post-Recevoir Crochet
Dans votre référentiel:
sudo vi hooks/post-receive
Et il devrait ressembler à quelque chose comme:
Définir des autorisations de fichier:
chmod +x hooks/post-receive
Git permettra d'actualiser les fichiers dans votre répertoire app à la suite d'une poussée de l'opération.
Exécuter nœud à Nœud-Superviseur
Vous aurez besoin pour installer Nœud-Superviseur sur votre machine en tant que global nœud du module:
sudo npm install supervisor -g
Maintenant, il suffit de lancer votre nœud app avec nœud-superviseur et il va surveiller les modifications apportées aux fichiers dans votre répertoire de travail:
supervisor /home/path/to/your/www/server.js
(notesupervisor
au lieu denode
).npm install -l
sur le serveur distant est intelligent. Cela peut bien sûr être couplé avec votre méthode à l'aide de post-recevoir des crochets.Probablement très tard repond ici. Mais j'ai trouvé ce projet sur github et semble faire ce que tu veux faire, mais en beaucoup plus propre chemin.
https://github.com/logsol/Github-Auto-Deploy
Check it out. Serait aussi intéressé de savoir ce que les autres pensent de cela en termes de commentaires et de upvotes.
Acclamations,
S
Dans un projet, je suis actuellement en développement, j'ai suivi les directives de couverts en Jez Humble du livre brillant "Continuous Delivery" (bien intéressant à lire).
Cela signifie la création d'un déploiement pipeline à l'aide d'une certaine forme d'intégration continue serveur (j'utilise Thoughtworks gratuite community edition de Aller), qui est responsable de la première à la vérification de votre code pour la qualité, la complexité et l'exécution des tests unitaires. Il suffit alors de suivre un déploiement pipeline résultant en un push à vos serveurs de production.
Cela semble très compliqué, mais ne doit pas être, et ne faire l'ensemble du processus de l'écriture de code et il fait son chemin dans la production sûre et sans soucis (pas effrayant libération jours!).
J'utilise un déploiement complet de pipeline pour les systèmes live, et une version réduite pour les mnp modules que j'écris, et les deux partagent le même 1-cliquez sur le déploiement de la technique.
Je viens de publier un nœud à base de solution à votre problème: nœud-cd
Il consiste en une simple nœud de l'application en cours d'exécution sur votre VPS qui recevra Github post-recevoir des Crochets et d'exécuter le script que vous souhaitez (par exemple un script shell qui va tuer votre application, la commande git pull, et de le redémarrer).
Voici un autre simple nodeJS mise en œuvre.
C'est un très simple nœud de serveur qui s'exécute sur un nom d'hôte et le port à configurer et peut être configuré pour gérer GitHub post recevoir web crochets. Et le réel pul/test/déployer les actions peuvent être personnalisés pour faire ce que vous voulez. Dans l'implémentation actuelle, c'est un interpréteur de commande qui est spécifié en ligne dans le script serveur nodeJS. Et il est très simple secret_key base régime de sécurité en place.
https://github.com/shyam-habarakada/rscds
Mon serveur de test avait déjà nœud installé et en cours d'exécution, donc l'écriture de cette place a été rapide et facile.
J'ai trouvé le projet pour un déploiement facile à utilise git.
git-play
Je pense que c'est la bonne façon pour vous.
Vérifier.
Si vous voulez un python/tornade à base de solution, j'ai écrit un script pour gérer les requêtes POST à partir de Github Webhook Services. Vous pouvez le trouver à https://github.com/Akobi/ops/tree/master/autodeploy
Il utilise essentiellement un JSON fichier de configuration de liste repos vous attendent pousse à partir, qui commande que vous souhaitez exécuter sur de déployer, et dans quel répertoire les commandes doivent être exécutées dans. Tout ce que vous avez à faire est de modifier le fichier de configuration à votre goût et exécuter le script!
En outre, j'utilise Nginx comme serveur proxy inverse pour transmettre ces Messages à mon script. Vous pouvez trouver la config Nginx dans le même dépôt Github sous "nginx" dossier.
Heureux de pousser!
le PHP réponse est tout à fait légitime à mon avis, mais si vous préférez Ruby, j'ai blogué une solution. c'est la même chose que le PHP réponse, juste dans une autre langue. vous utilisez un web de crochet et vous avez un script simple écoute pour les requêtes HTTP.
http://gilesbowkett.blogspot.com/2012/06/heroku-style-deployment-on-ec2.html
J'ai créé mon propre rudimentaire de déploiement de l'outil qui permettrait de télécharger automatiquement les nouvelles mises à jour à partir du repo - https://github.com/jesalg/SlimJim - Fondamentalement, il écoute le github post-receive-crochet et utilise un proxy pour déclencher un script de mise à jour.
Je suis le fondateur de https://commando.io et récemment, nous avons annoncé une intégration avec GitHub via un service. L'intégration permet d'exécuter des exécutions sur des serveurs lorsque vous appuyez sur un dépôt GitHub. Ce est une occasion parfaite pour exécuter automatiquement des scripts de déploiement lorsque vous appuyez sur code.
Une exécution est un script que vous écrivez à l'intérieur de Commando.io qui peut être écrit en bash, perl, python, ruby, aller ou node.js. Pour en savoir plus, et voir un exemple de script d'exécution de l'exécution de
git pull
, voir notre article de blog annonce: http://blog.commando.io/run-executions-via-github-push/Deepl.io semble être nouveau et prometteur adversaire est dans cet espace.
Fonctionnalités (prise de son site web):
Également noter là sont libres/services peu coûteux comme REPOMAN.IO que automatiser presque tout pour vous.