Added staging deploy into travis

This commit is contained in:
Martyn Inglis
2016-08-02 15:09:42 +01:00
12 changed files with 35 additions and 66 deletions

View File

@@ -13,8 +13,8 @@ from flask import (
current_app,
request,
g,
url_for
)
url_for)
from flask._compat import string_types
from flask.globals import _lookup_req_object
from flask_login import LoginManager
@@ -67,9 +67,11 @@ current_service = LocalProxy(partial(_lookup_req_object, 'service'))
def create_app():
from config import configs
application = Flask(__name__)
application.config.from_object(os.environ['NOTIFY_ADMIN_ENVIRONMENT'])
application.config.from_object(configs[os.environ['NOTIFY_ENVIRONMENT']])
init_app(application)
logging.init_app(application)

View File

@@ -1,3 +1,3 @@
__travis_commit__ = "dev"
__time__ = "dev"
__travis_job_number__ = "dev"
__travis_commit__ = ""
__time__ = "2016-07-05:14:44:52"
__travis_job_number__ = ""

View File

@@ -1,7 +1,7 @@
---
files:
-
destination: /home/ubuntu/notifications-admin
destination: /home/notify-app/notifications-admin
source: /
hooks:
AfterInstall:

View File

@@ -3,7 +3,6 @@ from datetime import timedelta
class Config(object):
DEBUG = False
ADMIN_CLIENT_SECRET = os.environ['ADMIN_CLIENT_SECRET']
ADMIN_CLIENT_USER_NAME = os.environ['ADMIN_CLIENT_USER_NAME']
@@ -78,10 +77,24 @@ class Preview(Config):
CSV_UPLOAD_BUCKET_NAME = 'preview-notifications-csv-upload'
class Staging(Config):
SHOW_STYLEGUIDE = False
HTTP_PROTOCOL = 'https'
HEADER_COLOUR = '#F47738' # $orange
CSV_UPLOAD_BUCKET_NAME = 'staging-notify-csv-upload'
class Live(Config):
SHOW_STYLEGUIDE = False
HEADER_COLOUR = '#B10E1E' # $red
HTTP_PROTOCOL = 'https'
CSV_UPLOAD_BUCKET_NAME = 'live-notifications-csv-upload'
configs = {
'development': 'config.Development',
'test': 'config.Test',
'preview': 'config.Preview',
'staging': 'config_staging.Staging',
'live': 'config_live.Live'
'development': Development,
'test': Test,
'preview': Preview,
'staging': Staging,
'live': Live
}

View File

@@ -1,17 +0,0 @@
import os
from config import Config
class Live(Config):
SHOW_STYLEGUIDE = False
HEADER_COLOUR = '#B10E1E' # $red
HTTP_PROTOCOL = 'https'
API_HOST_NAME = os.environ['LIVE_API_HOST_NAME']
ADMIN_CLIENT_SECRET = os.environ['LIVE_ADMIN_CLIENT_SECRET']
SECRET_KEY = os.environ['LIVE_SECRET_KEY']
DANGEROUS_SALT = os.environ['LIVE_DANGEROUS_SALT']
CSV_UPLOAD_BUCKET_NAME = 'live-notifications-csv-upload'
DESKPRO_API_KEY = os.environ['LIVE_DESKPRO_API_KEY']
DESKPRO_DEPT_ID = os.environ['LIVE_DESKPRO_DEPT_ID']
DESKPRO_ASSIGNED_AGENT_TEAM_ID = os.environ['LIVE_DESKPRO_ASSIGNED_AGENT_TEAM_ID']
HEADER_COLOUR = '#B10E1E' # $red

View File

@@ -1,16 +0,0 @@
import os
from config import Config
class Staging(Config):
SHOW_STYLEGUIDE = False
HTTP_PROTOCOL = 'https'
API_HOST_NAME = os.environ['STAGING_API_HOST_NAME']
ADMIN_CLIENT_SECRET = os.environ['STAGING_ADMIN_CLIENT_SECRET']
SECRET_KEY = os.environ['STAGING_SECRET_KEY']
DANGEROUS_SALT = os.environ['STAGING_DANGEROUS_SALT']
CSV_UPLOAD_BUCKET_NAME = 'staging-notifications-csv-upload'
DESKPRO_API_KEY = os.environ['STAGING_DESKPRO_API_KEY']
DESKPRO_DEPT_ID = os.environ['STAGING_DESKPRO_DEPT_ID']
DESKPRO_ASSIGNED_AGENT_TEAM_ID = os.environ['STAGING_DESKPRO_ASSIGNED_AGENT_TEAM_ID']
HEADER_COLOUR = '#F47738' # $orange

View File

@@ -1,4 +1,4 @@
export NOTIFY_ADMIN_ENVIRONMENT='config.Test'
export NOTIFY_ENVIRONMENT='test'
export ADMIN_CLIENT_SECRET='dev-notify-secret-key'
export ADMIN_CLIENT_USER_NAME='dev-notify-admin'
export API_HOST_NAME=''

View File

@@ -1,5 +1,5 @@
#!/bin/bash
echo "Chown application to be owned by ubuntu"
cd /home/ubuntu/;
chown -R ubuntu:ubuntu notifications-admin
cd /home/notify-app/;
chown -R notify-app:govuk-notify-applications notifications-admin

View File

@@ -1,5 +1,5 @@
#!/bin/bash
echo "Install dependencies"
cd /home/ubuntu/notifications-admin;
pip3 install -r /home/ubuntu/notifications-admin/requirements.txt
cd /home/notify-app/notifications-admin;
pip3 install -r /home/notify-app/notifications-admin/requirements.txt

View File

@@ -1,5 +1,4 @@
#!/bin/bash
echo "Starting application"
cd ~/notifications-admin/;
sudo service notifications-admin start

View File

@@ -101,7 +101,7 @@ reset_waiter_timeout() {
fi
# Base register/deregister action may take up to about 30 seconds
timeout=$((timeout + 30))
timeout=$((timeout + 60))
WAITER_ATTEMPTS=$((timeout / WAITER_INTERVAL))
}
@@ -183,7 +183,7 @@ get_instance_health_elb() {
;;
*)
msg "Instance '$instance_id' not part of ELB '$elb_name'"
return 1
return 0
esac
fi
}

12
wsgi.py
View File

@@ -1,21 +1,9 @@
from credstash import getAllSecrets
import os
default_env_file = '/home/ubuntu/environment'
environment = 'live'
if os.path.isfile(default_env_file):
with open(default_env_file, 'r') as environment_file:
environment = environment_file.readline().strip()
# on aws get secrets and export to env
os.environ.update(getAllSecrets(region="eu-west-1"))
from config import configs # noqa
os.environ['NOTIFY_ADMIN_ENVIRONMENT'] = configs[environment]
from app import create_app # noqa
application = create_app()