Implantação automática do repositório node.js – git hooks

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

  1. Configurar o repositório git

$ git clone https://github.com/github-user/github-repo

  1. 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);
});
});
  1. Instale o pacote necessário:

    npm install gith

  2. 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.