我正在研究node.js + react项目。
我正在我的ubuntu服务器上制作自动部署系统,该系统具有我的来源。
因此,我制作了webhook.js服务器和deploy.sh文件。
webhook.js用于在我推送一些新的提交并执行deploy.sh bash程序时监听github的webhook发送的消息。
deploy.sh执行git pull origin master
并重新启动服务器。
webhook.js
const secret = 'xxxxxxxx';
let http = require('http');
let crypto = require('crypto');
const exec = require('child_process').exec;
http.createServer(function(req, res){
req.on('data', function(chunk){
let sig = "sha1=" + crypto.createHmac('sha1', secret).update(chunk.toString()).digest('hex');
if (req.headers['x-hub-signature'] == sig) {
deploy(res);
} else {
console.log('un matched');
}
});
res.end();
}).listen(8080);
function deploy(res){
exec('/home/rpf5573/nodewebhook/deploy.sh', function(err, stdout, stderr){
console.log('deploy.sh is called');
if (err) {
console.error(err);
res.writeHead(404);
return res.end();
}
res.writeHead(200);
res.end();
});
}
deploy.sh
cd /home/rpf5573/react-discovery-v2
echo "Pulling from Master"
git pull origin master
echo "Pulled successfully from master"
echo "Restarting server..."
npm restart-server
echo "Server restarted Successfully"
我的deploy.sh剂量显示任何echo
消息。 git pull origin master
执行得很好,但仅回显消息不起作用!
如何查看回显消息?
这是因为deploy.sh是在其他shell上执行的吗?