UNPKG

3.72 kBJavaScriptView Raw
1var nodemiral = require('nodemiral');
2var fs = require('fs');
3var path = require('path');
4var util = require('util');
5var _ = require('underscore');
6var SCRIPT_DIR = path.resolve(__dirname, '../../scripts/push');
7var TEMPLATES_DIR = path.resolve(__dirname, '../../templates/push');
8exports.main = function(bundlePath, config, buildOptions) {
9 var deployCheckWaitTime = 15;
10 var appName = config.deploy.appName;
11 var rootPath = config.setup.path;
12 var rootURL = config.deploy.env.ROOT_URL;
13 var rootPort = config.deploy.env.PORT;
14 var taskList = nodemiral.taskList("Deploy app '" + appName + "' (linux)");
15 taskList.execute("Create Project Directory", {
16 command: "mkdir -p " + rootPath + appName + '/tmp/'
17 });
18 taskList.copy('Uploading bundle ' + bundlePath, {
19 src: bundlePath,
20 dest: rootPath + appName + '/tmp/bundle.tar.gz',
21 progressBar: true
22 });
23 taskList.copy('Initializing start script', {
24 src: path.resolve(TEMPLATES_DIR, 'app.json'),
25 dest: rootPath + appName + '/app.json',
26 vars: {
27 appName: appName,
28 env: config.deploy.env,
29 rootPath: rootPath,
30 }
31 });
32 deployAndVerify(taskList, appName, rootPath, rootURL, rootPort, deployCheckWaitTime, buildOptions.verbose);
33 return taskList;
34};
35// exports.restart = function(config) {
36// var taskList = nodemiral.taskList("Restarting Application (linux)");
37// var appName = config.appName;
38// var port = config.env.PORT;
39// var deployCheckWaitTime = config.deployCheckWaitTime;
40// startAndVerify(taskList, appName, port, deployCheckWaitTime);
41// return taskList;
42// };
43// exports.stop = function(config) {
44// var taskList = nodemiral.taskList("Stopping Application (linux)");
45// //stopping
46// taskList.executeScript('Stopping app', {
47// script: path.resolve(SCRIPT_DIR, 'stop.sh'),
48// vars: {
49// appName: config.appName
50// }
51// });
52// return taskList;
53// };
54// exports.start = function(config) {
55// var taskList = nodemiral.taskList("Starting Application (linux)");
56// var appName = config.appName;
57// var port = config.env.PORT;
58// var deployCheckWaitTime = config.deployCheckWaitTime;
59// startAndVerify(taskList, appName, port, deployCheckWaitTime);
60// return taskList;
61// };
62// function startAndVerify(taskList, appName, port, deployCheckWaitTime) {
63// // taskList.execute('Starting app', {
64// // command: "bash /opt/" + appName + "/config/start.sh"
65// // });
66// // verifying deployment
67// taskList.executeScript('Verifying deployment', {
68// script: path.resolve(SCRIPT_DIR, 'verify.sh'),
69// vars: {
70// deployCheckWaitTime: deployCheckWaitTime || 10,
71// appName: appName,
72// port: port
73// }
74// });
75// }
76function deployAndVerify(taskList, appName, rootPath, rootURL, rootPort, deployCheckWaitTime, verbose) {
77 // deploying
78 taskList.executeScript('Invoking deployment process', {
79 script: path.resolve(SCRIPT_DIR, 'deploy.sh'),
80 vars: {
81 appName: appName,
82 rootPath: rootPath,
83 rootPort: rootPort,
84 }
85 }, function(stdout, stderr) {
86 if (verbose) {
87 if (stderr) {
88 process.stderr.write(stderr.toString());
89 }
90 process.stdout.write(stdout.toString());
91 process.stdout.write("\n\n");
92 }
93 });
94 // verifying deployment
95 taskList.executeScript('Verifying deployment', {
96 script: path.resolve(SCRIPT_DIR, 'verify.sh'),
97 vars: {
98 deployCheckWaitTime: deployCheckWaitTime,
99 appName: appName,
100 rootURL: rootURL
101 }
102 }, function(stdout, stderr) {
103 if (verbose) {
104 if (stderr) {
105 process.stderr.write(stderr.toString());
106 }
107 process.stdout.write(stdout.toString());
108 process.stdout.write("\n\n");
109 }
110 });
111}