forked from Strider-CD/strider-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun.js
63 lines (51 loc) · 1.39 KB
/
run.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
'use strict';
var request = require('superagent');
var debug = require('debug')('strider:cli');
function run(opts) {
var agent = request.agent();
var serverName = opts.server_name;
var project = opts.project;
var branch = opts.branch;
var message = opts.message;
var deploy = opts.deploy;
var url = serverName + '/api/session';
debug('opts: %j', opts);
request.post(url)
.send({
email: opts.email,
password: opts.password
})
.end(function (err, res) {
if (!err && res.statusCode !== 404) {
agent.saveCookies(res);
url = serverName + '/' + project + '/start';
var req = request.post(url);
var postData = { branch: branch || 'master' };
agent.attachCookies(req);
if (message) {
postData.message = message;
}
if (deploy) {
postData.type = 'TEST_AND_DEPLOY';
}
req.send(postData);
req.end(function (err, res) {
if (!err && res.statusCode !== 404) {
console.log('Job started');
}
else if (res.statusCode === 404) {
console.log('Error: Repo was not found');
}
else {
console.log('Error: ', err);
}
process.exit();
});
}
else {
console.error('Login error', err, res);
process.exit(1);
}
});
}
module.exports = run;