-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathapp.js
63 lines (47 loc) · 1.92 KB
/
app.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
var https = require('https');
var fs = require('fs');
var koa = require('koa');
var router = require('koa-router')();
var plugin = require('./lib/middleware');
var KU = require('./lib/kueUtils');
var logger = require('./lib/logger');
// Env variables are mandatory
if (!process.env.LOG4JS_CONFIG
|| !process.env.PUPPETFILE_URL
|| !process.env.RD_BASEURL
|| !process.env.RD_API_VERSION
|| !process.env.RD_PROJECT_NAME
|| !process.env.RD_API_TOKEN
|| !process.env.RD_API_JOB_ID) {
logger.fatal('!! OOOPS !! The following environment variables are mandatory:\n\t- LOG4JS_CONFIG: Path to your logger configuration file\n\t- PUPPETFILE_URL: Your Puppetfile git repository URL\n\t- RD_BASEURL: Rundeck base URL\n\t- RD_API_VERSION: Version number of Rundeck API\n\t- RD_API_TOKEN: Token used to access Rundeck API\n\t- RD_PROJECT_NAME: Name of your Rundeck project where are configured your job\n\t- RD_API_JOB_ID: ID of the job used to deploy either an entire environment or just a module with r10k');
process.exit(1);
}
var app = koa();
var app_port = process.env.KOA_LISTEN_PORT || 3000;
// Launch Kue processor
KU.processJob();
// Define routes
router.post('/gitlab', plugin.gitlabProcess(process.env.PUPPETFILE_URL));
// Use middlewares
app
.use(plugin.pageNotFound())
.use(router.routes())
.use(router.allowedMethods());
// Start Koa app with SSL support if wanted
var sslRequired = (process.env.KOA_USE_SSL === 'true');
if (sslRequired) {
var key_file = process.env.KOA_SSL_KEY || 'examples/ssl/r10k-deployerjs.key';
var cert_file = process.env.KOA_SSL_CERT || 'examples/ssl/r10k-deployerjs.crt';
var ssl_opts = {
key: fs.readFileSync(key_file),
cert: fs.readFileSync(cert_file)
};
// HTTPS
https.createServer(ssl_opts, app.callback()).listen(app_port);
logger.info('Koa started on port '+app_port+' with SSL support');
}
else {
// HTTP
app.listen(app_port);
logger.info('Koa started on port '+app_port);
}