Skip to content
Snippets Groups Projects
Commit 9a4ed9f5 authored by Ben Adida's avatar Ben Adida
Browse files

updated fab file, almost ready

parent f7da2664
No related branches found
No related tags found
No related merge requests found
...@@ -5,14 +5,20 @@ A fabric deployment script for Helios that assumes the following: ...@@ -5,14 +5,20 @@ A fabric deployment script for Helios that assumes the following:
- locally, development is /web/helios-server - locally, development is /web/helios-server
- remotely, production is /web/production/helios-server - remotely, production is /web/production/helios-server
- remotely, staging is /web/staging/helios-server - remotely, staging is /web/staging/helios-server
- all of these directories are git checkouts that have a proper origin pointer
Deployment is git and tag based, so Other assumptions that should probably change:
- both staging and production run under the same apache instance
Deployment is git and tag based, so:
fab staging_deploy:tag=v3.0.4,hosts="vote.heliosvoting.org" fab staging_deploy:tag=v3.0.4,hosts="vote.heliosvoting.org"
fab production_deploy:tag=v3.0.5,hosts="vote.heliosvoting.org" fab production_deploy:tag=v3.0.5,hosts="vote.heliosvoting.org"
IMPORTANT: settings file may need to be tweaked manually
""" """
from fabric.api import local, settings, abort, cd, run from fabric.api import local, settings, abort, cd, run, sudo
from fabric.contrib.console import confirm from fabric.contrib.console import confirm
STAGING_DIR = "/web/staging/helios-server" STAGING_DIR = "/web/staging/helios-server"
...@@ -34,16 +40,32 @@ def check_tag(tag, path): ...@@ -34,16 +40,32 @@ def check_tag(tag, path):
abort("no remote tag %s" % tag) abort("no remote tag %s" % tag)
def checkout_tag(tag, path): def checkout_tag(tag, path):
pass with cd(path):
result = run('git checkout %s' % tag)
if result.failed:
abort("on remote: could not check out tag %s" % tag)
def migrate_db(path): def migrate_db(path):
pass with cd(path):
result = run('python manage.py migrate')
if result.failed:
abort("could not migrate")
def restart_apache(): def restart_apache():
pass result = sudo('/etc/init.d/apache2 restart')
if result.failed:
abort("could not restart apache")
def deploy_staging(tag): def deploy(tag, path):
confirm("Ready to deploy %s to staging?" % tag) confirm("Ready to deploy %s to %s?" % (tag,path))
run_tests() run_tests()
check_tag(tag, path=STAGING_DIR) check_tag(tag, path=path)
checkout_tag(tag, path=path)
#migrate_db(path=path)
restart_apache()
def staging_deploy(tag):
deploy(tag, path=STAGING_DIR)
def production_deploy(tag):
deploy(tag, path=PRODUCTION_DIR)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment