Método fácil de implantar aplicativos node.js de git push.
Estatísticas
nome do repo: codetip
nome do ramo: master
pasta do servidor para repo: / var / www / codetip /
pasta webhook para repo: / var / www / codetip / hook /
Servidor
- Configurar o repositório git
$ git clone https://github.com/github-user/github-repo
- Crie um arquivo hook.js na pasta do gancho (/var/www/codetip/hook/hook.js)
hook/hook.js
var gith = require('gith').create(6000); // run on port 6000
var exec = require('child_process').exec;
gith({
repo: 'stevelacy/codetip' // the github-user/repo-name
}).on('all', function(payload){
console.log("push received");
exec('/var/www/codetip/hook/hook.sh ' + payload.branch, function(err, stdout, stderr){
if (err) return err;
console.log(stdout);
console.log("git deployed to branch " + payload.branch);
});
});
Instale o pacote necessário:
npm install gith
Crie hook.sh
hook/hook.sh
#!/bin/sh
git pull "origin" $1
return
Defina as permissões:
$ chmod +x hook/hook.sh
Github.com
Adicione o git hook ao seu repositório github.
https://developer.github.com/webhooks/creating/
Defina o URL de carga como seudominio.com:6000
Execute o script do nó:
$ node hook/hook.js
Usar o forever ou um lançador semelhante manterá o processo de nó em execução quando você fechar o terminal.
Qualquer push para o repo deve acionar a carga útil e chamar o hook.sh
Outras modificações incluem um comando de implantação para ser executado assim que o repo git extraiu ou buscou os novos dados.