I'm trying to run git pull, npm run build, and pm2 reload myApp any time something is pushed to my github repo.
I created a server which is connected to github webhooks, and the server runs the following code:
const pullFromMaster = exec(`cd ${path} git pull origin master`, function (err, stdout, stderr) {
console.log(stdout);
});
pullFromMaster.stdout.pipe(process.stdout);
pullFromMaster.on('end', () => {
console.log('Finished Pulling from Github')
const buildNewCode = exec(`${path} npm run build`, function (err, stdout, stderr) {
console.log(stdout)
});
buildNewCode.stdout.pipe(process.stdout);
buildNewCode.on('end', () => {
console.log('finished building');
exec(`pm2 reload ${PM2_IDENTIFIER}`, function (err, stdout, stderr) {
console.log('finished reloading server');
console.log(stdout)
});
})
})
The problem is the buildNewCode process, doesn't wait for pullFromMaster, and the pm2 reload doesn't wait for buildNewCode. How can I make one wait for the next?