34 Commits

Author SHA1 Message Date
6a27b88465 naming error 2016-09-30 18:18:19 -04:00
d91df030be new work flow 1 2016-09-30 17:54:31 -04:00
2d027afa29 Update create.sh 2016-09-16 14:15:59 -04:00
27afb67a17 stuff 2016-06-17 01:19:20 -04:00
61af6f62b6 stuff 2016-06-17 01:05:53 -04:00
3ff71a5114 stuff 2016-06-17 00:31:13 -04:00
84ad1d92ec stuff 2016-06-17 00:13:03 -04:00
721e94e1e8 stuff 2016-06-16 23:56:31 -04:00
06c0e8b9dd Merge pull request #2 from wmantly/branches
stuff
2016-06-16 23:51:22 -04:00
749e8d537c stuff 2016-06-16 23:47:32 -04:00
f831addb5e Merge pull request #1 from wmantly/branches
Branches
2016-06-16 23:25:40 -04:00
0fba8f8fbe stuff 2016-06-16 23:24:01 -04:00
290b1f1fef stuff 2016-06-16 23:17:43 -04:00
045d14a867 stuff 2016-06-16 23:13:25 -04:00
6693101f58 stuff 2016-06-16 22:54:37 -04:00
157f9ad718 stuff 2016-06-16 22:52:04 -04:00
ad1c8e7205 stuff 2016-06-16 22:51:16 -04:00
307856f969 stuff 2016-06-16 22:34:19 -04:00
b827c91fae stuff 2016-06-16 22:27:22 -04:00
e26e8f8305 stuff 2016-06-16 22:26:50 -04:00
f2eaa29339 stuff 2016-06-16 21:00:05 -04:00
e1ce7c148c stuff 2016-06-16 20:56:32 -04:00
4256321462 stuff 2016-06-16 20:55:30 -04:00
b48e243cc6 stuff 2016-06-16 20:47:23 -04:00
8c7beea59b stuff 2016-06-16 19:35:10 -04:00
e31aaedf27 stuff 2016-06-16 19:30:22 -04:00
46bdac5aa8 stuff 2016-06-16 19:07:58 -04:00
00b474a071 stuff 2016-06-16 19:05:19 -04:00
7b8d7b439a stuff 2016-06-16 19:02:40 -04:00
5865000330 stuff 2016-06-16 18:58:15 -04:00
208395bb47 stuff 2016-06-16 18:56:04 -04:00
ffef2a59c3 stuff 2016-06-16 18:53:26 -04:00
260881acd7 stuff 2016-06-16 18:49:32 -04:00
b54d5533c9 first 2016-06-16 18:37:44 -04:00
6 changed files with 137 additions and 8 deletions

View File

@ -12,7 +12,7 @@ var http = require('http');
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3180');
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**

52
create.sh Normal file
View File

@ -0,0 +1,52 @@
#!/bin/bash
name="$1"
sshURL="$2"
nodePort=`./random_port.py`
eval "$(ssh-agent -s)"
ssh-add /root/.ssh/id_github_rsa
mkdir /var/www/gitwrapper/$name
cd /var/www/gitwrapper/$name
chmod 777 .
echo `pwd`
DJANGO_SETTINGS_MODULE=project.settings.prod
export DJANGO_SETTINGS_MODULE=project.settings.prod
git clone $sshURL .
./scripts/setup.sh
cp /var/www/local_settings.py project/settings/local_settings.py
echo "BRANCH = '$name'" >> project/settings/local_settings.py
# set up project from prod, load database
git checkout prod
./manage.py createcachetable
./manage.py migrate
./manage.py loaddata /var/www/django.json
git checkout $name
./scripts/setup.sh
# python3 manage.py collectstatic --noinput
./manage.py migrate
chmod 777 db.sqlite3
# set up apache vhost
echo "<VirtualHost *:80>" > /etc/apache2/sites-enabled/$name.conf
echo " ServerName $name.staging.bytedev.co" >> /etc/apache2/sites-enabled/$name.conf
echo " Alias /static /var/www/gitwrapper/$name/staticfiles" >> /etc/apache2/sites-enabled/$name.conf
echo " WSGIDaemonProcess $name python-path=/var/www/gitwrapper/$name:/var/www/gitwrapper/$name/env:/var/www/gitwrapper/$name/env/lib/python3.5/site-packages" >> /etc/apache2/sites-enabled/$name.conf
echo " WSGIProcessGroup $name" >> /etc/apache2/sites-enabled/$name.conf
echo " WSGIScriptAlias / /var/www/gitwrapper/$name/project/wsgi.py" >> /etc/apache2/sites-enabled/$name.conf
echo "</VirtualHost>" >> /etc/apache2/sites-enabled/$name.conf
/usr/sbin/service apache2 restart
exit 0

10
delete.sh Normal file
View File

@ -0,0 +1,10 @@
#!/bin/bash
name="$1"
sshURL="$2"
rm -rf /var/www/gitwrapper/$name
rm /etc/apache2/sites-enabled/$name.conf
/usr/sbin/service apache2 restart
exit 0

9
random_port.py Executable file
View File

@ -0,0 +1,9 @@
#!/usr/bin/env python3
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 0))
addr = s.getsockname()
print (addr[1])
s.close()
exit(0)

View File

@ -1,15 +1,47 @@
var express = require('express');
var router = express.Router();
var exec = require('child_process').exec;
var fs = require('fs');
/* GET home page. */
var install_dir = '/var/www/gitwrapper/'
var calls = {
create: function(req, res, name, sshURL){
return exec('bash /var/www/gitdeploy/create.sh '+name+' '+sshURL, function(err, stdout, stderr){
console.log(err, stdout, stderr);
return res.json({ title: stdout });
});
},
update: function(req, res, name, sshURL){
return exec('bash /var/www/gitdeploy/update.sh '+name+' '+sshURL, function(err, stdout, stderr){
console.log(err, stdout, stderr);
return res.json({ title: stdout });
});
},
delete: function(req, res, name, sshURL){
return exec('bash /var/www/gitdeploy/delete.sh '+name+' '+sshURL, function(err, stdout, stderr){
console.log(err, stdout, stderr);
return res.json({ title: stdout });
});
}
};
router.all('/', function(req, res, next) {
if(req.headers['x-github-event'] === 'push'){
if(req.body.ref === "refs/heads/master"){
console.log('time to update master!');
exec('/var/www/gitwrapperdeploy.sh', console.log, console.log);
}
}
res.render('index', { title: 'Express' });
var event = req.headers['x-github-event'];
var call = (req.body.created && 'create') ||
(req.body.deleted && 'delete') ||
'update';
var name = req.body.ref.replace('refs/heads/', '');
var sshURL = req.body.repository.ssh_url;
if(call === 'update' && !fs.existsSync('/var/www/gitwrapper/'+name)) call = 'create';
return calls[call](req, res, name, sshURL);
});
module.exports = router;

26
update.sh Normal file
View File

@ -0,0 +1,26 @@
#!/bin/bash
name="$1"
sshURL="$2"
# set up git to auth
eval "$(ssh-agent -s)"
ssh-add /root/.ssh/id_github_rsa
DJANGO_SETTINGS_MODULE=project.settings.prod
export DJANGO_SETTINGS_MODULE=project.settings.prod
cd /var/www/gitwrapper/$name
git stash
git pull --force origin $name
./scripts/setup.sh
python3 manage.py collectstatic --noinput
python3 manage.py migrate
chmod 777 .
chmod 777 db.sqlite3
/usr/sbin/service apache2 restart
exit 0