From 6a8b4273aca3d476d47cdc700f49bbb6923c474d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20Midb=C3=B8e?= Date: Thu, 1 Aug 2019 13:29:56 +0200 Subject: [PATCH] Init commit. Express server listening to github webhooks on port 5005 --- index.js | 39 +++++++++++++++++++++++++++++++++++++++ package.json | 16 ++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 index.js create mode 100644 package.json diff --git a/index.js b/index.js new file mode 100644 index 0000000..2c7f760 --- /dev/null +++ b/index.js @@ -0,0 +1,39 @@ +var express = require("express"); +const bodyParser = require('body-parser'); +const { execFile } = require('child_process'); + +var app = express(); +app.use(bodyParser.json()); + +app.post("/webhooks/github", function (req, res) { + console.log('req', req.body) + + var branch = req.body.ref; + console.log(`Detected updates to branch: '${branch}'`) + + if(branch.indexOf('master') > -1){ + console.log('Downloading master branch'); + deploy(res); + } + else { + console.log('Non-deployable branch found. Not initiating build, but responding to the webhook') + res.sendStatus(200); + } +}) + +function deploy(res){ + const child = execFile('/home/ubuntu/deployment/deploy.sh', [], { shell: true }, (error, stdout, stderr) => { + if (error) + console.error(error); + + console.log(stdout); + }); + + res.sendStatus(200); +} + +const port = process.env.PORT || 5005; + +console.log('Starting deployment server on port:', port); +app.listen(port); + diff --git a/package.json b/package.json new file mode 100644 index 0000000..c779e19 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "CD", + "version": "1.0.0", + "description": "Modular deployment server", + "main": "index.js", + "author": "Kevin Midboe", + "license": "MIT", + "private": true, + "scripts": { + "start": "node index.js" + }, + "dependencies": { + "body-parser": "^1.19.0", + "express": "^4.17.1" + } +}