我正在尝试自动化我每次在服务器上测试应用和网站时要进行的过程。我目前在nodejitsu上运行。当我在本地机器上测试了某些东西并且它能正常工作时,下一步是...
- 打开我的package.json文件
- 删除domains字段,并将名称和子域更改为staging。(可能还有更改版本号的意义)
- 然后我执行
- 确认任何提示(例如批准版本号的增量)
- 一旦应用程序启动,我会检查我的应用程序在服务器上的运行情况,进行更改等操作
/*
* Use this file to deploy an app to the staging server on nodejitsu
*/
var bash = require('child_process').spawn('bash');
var colors = require('colors');
var fs = require('fs');
// stdout setup
bash.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
bash.stdout.on('error', function (err) {
console.log('stdout error: '.red, err);
});
// on bash exit
bash.on('exit', function (code) {
console.log('Exiting... ', code);
});
// grab package.json
var package = '';
fs.readFile('package.json', {encoding: 'utf-8'}, function (err, data) { // grab the package.json file contents
if (err) throw err;
package = JSON.parse(data);
fs.rename('package.json', 'rename-me-before-deploying.json'); // rename the package.json file
package.name = 'stajing'; // alter json
package.subdomain = 'stajing'; // alter json
package.domains = []; // alter json
fs.writeFile('package.json', JSON.stringify(package, null, 2), function(err) { // write the new package to package.json
if (err) throw err;
bash.stdin.write('jitsu deploy\n'); // Deploy to staging app on nodejitsu.
setTimeout(function () { // this needs to be replaced
bash.stdin.write('yes\n');
}, 5000);
console.log("All done : )");
// bash.stdin.end(); // close out
});
});
我这里有几个问题。我相信为了完成它,我需要知道的是当Nodejitsu提示我递增版本号时触发的事件prompt: Is this ok?: (yes)
,以便我可以确认,如果发生了这种情况,以及整个过程完成时触发的事件,以便我可以还原对package.json文件的更改,使我的应用程序部署到暂存环境并且我的文件本质上没有受到影响。
undefined
似乎来自于'exit'
事件,因为colors
似乎没有定义orange
。 - Jonathan Lonowski