Фон
Я работаю над проектом node.js + реакции.
Я делаю систему автоматического развертывания на моем сервере Ubuntu, у которого есть мой источник.
Итак, я сделал сервер webhook.js и развернул файл .sh.
webhook.js предназначен для прослушивания сообщения, отправленного webhook github, когда я нажимаю какой-то новый коммит, и запускаю программу bash deploy.sh.
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"
Итак, в чем ваша проблема?
my deploy.sh dosent показывает любое сообщение echo
. git pull origin master
выполняется хорошо, но не работает только эхо-сообщение!
Как я могу увидеть эхо-сообщение?
Это потому, что deploy.sh выполняется другой оболочкой?