diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2013-01-08 17:28:34 (GMT) |
---|---|---|
committer | Daniel Narvaez <dwnarvaez@gmail.com> | 2013-01-08 17:28:34 (GMT) |
commit | f32a342323e279a2b04158b81f7245c2ef1ed764 (patch) | |
tree | e3b3047f301505ac1ac4855263892fce52bdb44b | |
parent | 58ee57573bd6a26cd1a4f8cc864a265103b2f0ac (diff) |
Setup separate sandboxes for production/testing
-rw-r--r-- | fabfile/common.py | 8 | ||||
-rw-r--r-- | fabfile/master.py | 17 | ||||
-rw-r--r-- | fabfile/slave.py | 15 |
3 files changed, 21 insertions, 19 deletions
diff --git a/fabfile/common.py b/fabfile/common.py index e4ca44b..55bbf65 100644 --- a/fabfile/common.py +++ b/fabfile/common.py @@ -4,6 +4,7 @@ from fabric.api import local instances = {"production": {"master_dir": "master", "slave_dir": "slave", + "sandbox_dir": "sandbox", "config": {"distribute": True, "nightly_builds": True, @@ -13,6 +14,7 @@ instances = {"production": "testing": {"master_dir": "master-testing", "slave_dir": "slave-testing", + "sandbox_dir": "sandbox-testing", "config": {"branch": "testing", "check_system": False, @@ -31,11 +33,13 @@ slaves = {"buildbot@debian-wheezy-32bit.local": "debian-wheezy-32bit", slave_gateway = "dnarvaez@bender.sugarlabs.org" -activate_virtualenv = "source sandbox/bin/activate" - _instance_name = None +def get_virtualenv_activate(instance_name): + return "source %s/bin/activate" % instances[instance_name][sandbox_dir] + + def get_instance_name(): global _instance_name diff --git a/fabfile/master.py b/fabfile/master.py index dda6da8..d46f6ef 100644 --- a/fabfile/master.py +++ b/fabfile/master.py @@ -20,12 +20,11 @@ from common import slaves from common import slave_gateway from common import instances from common import get_instance_name +from common import get_virtualenv_activate repos = ["git://git.sugarlabs.org/sugar-buildbot/sugar-buildbot.git", "git://git.sugarlabs.org/sugar-build/sugar-build.git"] -activate_virtualenv = "source ~/sandbox/bin/activate" - env.roledefs["master"] = ["dnarvaez@shell.sugarlabs.org"] master_settings = {"sudo_user": "buildbot", @@ -38,10 +37,10 @@ master_settings = {"sudo_user": "buildbot", def create(instance_name=get_instance_name()): instance_info = instances[instance_name] - sudo("rm -rf ~/sandbox") - sudo("virtualenv ~/sandbox") + sudo("rm -rf ~/%s" % instance_info["sandbox_dir"]) + sudo("virtualenv ~/%s" % instance_info["sandbox_dir"]) - with prefix(activate_virtualenv): + with prefix(get_virtualenv_activate(instance_name)): sudo("pip install SQLAlchemy==0.7.9") sudo("pip install buildbot") @@ -58,7 +57,7 @@ def create(instance_name=get_instance_name()): def update(instance_name=get_instance_name()): instance_info = instances[instance_name] - with prefix(activate_virtualenv): + with prefix(get_virtualenv_activate(instance_name)): sudo("rm -rf ~/git") sudo("mkdir ~/git") @@ -106,7 +105,7 @@ def configure(instance_name=get_instance_name()): @roles("master") @with_settings(**master_settings) def start(instance_name=get_instance_name()): - with prefix(activate_virtualenv): + with prefix(get_virtualenv_activate(instance_name)): sudo("buildbot start ~/%s" % instances[instance_name]["master_dir"]) @@ -114,7 +113,7 @@ def start(instance_name=get_instance_name()): @roles("master") @with_settings(**master_settings) def stop(instance_name=get_instance_name()): - with prefix(activate_virtualenv): + with prefix(get_virtualenv_activate(instance_name)): sudo("buildbot stop ~/%s" % instances[instance_name]["master_dir"]) @@ -122,5 +121,5 @@ def stop(instance_name=get_instance_name()): @roles("master") @with_settings(**master_settings) def restart(instance_name=get_instance_name()): - with prefix(activate_virtualenv): + with prefix(get_virtualenv_activate(instance_name)): sudo("buildbot restart ~/%s" % instances[instance_name]["master_dir"]) diff --git a/fabfile/slave.py b/fabfile/slave.py index e441eb9..0faba47 100644 --- a/fabfile/slave.py +++ b/fabfile/slave.py @@ -14,7 +14,7 @@ from fabric.api import with_settings from common import slaves from common import slave_gateway from common import instances -from common import activate_virtualenv +from common import get_virtualenv_activate from common import get_instance_name @@ -31,14 +31,13 @@ settings = {"gateway": slave_gateway} def create(instance_name=get_instance_name()): instance_info = instances[instance_name] - run("rm -rf sandbox") - - run("virtualenv --system-site-packages sandbox") + run("rm -rf %s" % instance_info["sandbox_dir"]) + run("virtualenv --system-site-packages %s" % instance_info["sandbox_dir"]) chars = string.ascii_lowercase + string.ascii_uppercase + string.digits password = ''.join(random.choice(chars) for x in range(16)) - with prefix(activate_virtualenv): + with prefix(get_virtualenv_activate(instance_name)): run("pip install buildbot-slave") name = slaves[env.host_string] @@ -61,7 +60,7 @@ def create(instance_name=get_instance_name()): @roles("slave") @with_settings(**settings) def start(instance_name=get_instance_name()): - with prefix(activate_virtualenv): + with prefix(get_virtualenv_activate(instance_name)): run("buildslave start %s" % instances[instance_name]["slave_dir"]) @@ -69,7 +68,7 @@ def start(instance_name=get_instance_name()): @roles("slave") @with_settings(**settings) def stop(instance_name=get_instance_name()): - with prefix(activate_virtualenv): + with prefix(get_virtualenv_activate(instance_name)): run("buildslave stop %s" % instances[instance_name]["slave_dir"]) @@ -77,5 +76,5 @@ def stop(instance_name=get_instance_name()): @roles("slave") @with_settings(**settings) def restart(instance_name=get_instance_name()): - with prefix(activate_virtualenv): + with prefix(get_virtualenv_activate(instance_name)): run("buildslave restart %s" % instances[instance_name]["slave_dir"]) |