deployment: update production deployment to for rb-fork changes (
bug 1264203) r?gps
MozReview-Commit-ID: B303N9qdGNQ
--- a/ansible/deploy-mozreview-prod.yml
+++ b/ansible/deploy-mozreview-prod.yml
@@ -2,16 +2,18 @@
# MozReview (reviewboard.mozilla.org).
---
- hosts: reviewboardadm.private.scl3.mozilla.com
roles:
- { role: reviewboard-admin, site: reviewboard.mozilla.org }
vars:
repo: https://hg.mozilla.org/hgcustom/version-control-tools
rev: "@"
+ rb_repo: https://hg.mozilla.org/webtools/reviewboard
+ rb_rev: "@"
rb_vct: /data/reviewboard/src/version-control-tools
venv: /data/reviewboard/src/reviewboard.mozilla.org/venv
python: /data/reviewboard/src/reviewboard.mozilla.org/venv/bin/python
easy_install: /data/reviewboard/src/reviewboard.mozilla.org/venv/bin/easy_install
rbsite: /data/reviewboard/src/reviewboard.mozilla.org/venv/bin/rb-site
sitehome: /data/reviewboard/src/reviewboard.mozilla.org/reviewboard
tasks:
- name: notify IRC a deployment has been started
--- a/ansible/tasks/install-mozreview.yml
+++ b/ansible/tasks/install-mozreview.yml
@@ -1,19 +1,39 @@
---
+-name: prepare reviewboard-fork repo
+ hg: repo={{ rb_repo }}
+ dest={{ rb_vct }}/reviewboard-fork
+ revision={{ rb_rev }}
+ force=yes
+ purge=yes
+ executable={{ venv }}/bin/hg
+
+# The hg module's purge doesn't delete ignored files. Boo. Force that
+# because old files may cause chaos.
+- name: delete ignored files from reviewboard-fork repo
+ command: "{{ venv }}/bin/hg --config extensions.purge= -R {{ rb_vct }}/reviewboard-fork purge --all"
+
+- name: install djblets fork
+ command: {{ python }} setup.py install
+ chdir={{ rb_vct }}/reviewboard-fork/djblets
+
+- name: install reviewboard fork
+ command: {{ python }} setup.py install
+ chdir={{ rb_vct }}/reviewboard-fork/reviewboard
+
- name: prepare v-c-t repo
hg: repo={{ repo }}
dest={{ rb_vct }}
revision={{ rev }}
force=yes
purge=yes
executable={{ venv }}/bin/hg
-# The hg module's purge doesn't delete ignored files. Boo. Force that
-# because old files may cause chaos.
+# Delete ignored filed to avoid chaos.
- name: delete ignored files from version-control-tools repo
command: "{{ venv }}/bin/hg --config extensions.purge= -R {{ rb_vct }} purge --all"
# mozreview imports from mozautomation package. So, we need to install
# mozautomation before mozreview can be built.
- name: install mozautomation egg
command: "{{ venv }}/bin/pip install --upgrade --no-deps --force-reinstall {{ rb_vct }}/pylib/mozautomation"
--- a/testing/vcttesting/deploy.py
+++ b/testing/vcttesting/deploy.py
@@ -35,22 +35,27 @@ def run_playbook(name, extra_vars=None,
]
if verbosity:
args.append('-%s' % ('v' * verbosity))
logger.info('$ %s' % ' '.join([quote(a) for a in args]))
return subprocess.call(args, cwd=ANSIBLE)
-def deploy_mozreview_dev(repo=None, rev=None, verbosity=0):
+def deploy_mozreview_dev(repo=None, rev=None, rb_repo=None, rb_rev=None,
+ verbosity=0):
extra = {'vct': ROOT}
if repo:
extra['repo'] = repo
if rev:
extra['rev'] = rev
+ if rb_repo:
+ extra['rb_repo'] = rb_repo
+ if rb_rev:
+ extra['rb_rev'] = rb_rev
return run_playbook('deploy-mozreview-dev', extra_vars=extra,
verbosity=verbosity)
def deploy_mozreview_prod(repo=None, rev=None, verbosity=0):
extra = {'vct': ROOT}
if repo:
--- a/testing/vcttesting/deploy_mach_commands.py
+++ b/testing/vcttesting/deploy_mach_commands.py
@@ -28,21 +28,29 @@ class DeployCommands(object):
return deploy_mozreview_dev(repo=repo, rev=rev, verbosity=verbosity)
@Command('mozreview-prod', category='deploy',
description='Deploy MozReview to production')
@CommandArgument('--repo',
help='Alternative repository URL to deploy from')
@CommandArgument('--rev',
help='Explicit revision in repository to deploy from')
+ @CommandArgument('--rb-repo',
+ help='Alternative reviewboard-fork repository URL to '
+ 'deploy from')
+ @CommandArgument('--rb-rev',
+ help='Explicit revision in the reviewboard-fork '
+ 'repository to deploy from')
@CommandArgument('--verbosity', type=int,
help='How verbose to be with output')
- def reviewboard_prod(self, repo=None, rev=None, verbosity=None):
+ def reviewboard_prod(self, repo=None, rev=None, rb_repo=None, rb_rev=None,
+ verbosity=None):
from vcttesting.deploy import deploy_mozreview_prod
- return deploy_mozreview_prod(repo=repo, rev=rev, verbosity=verbosity)
+ return deploy_mozreview_prod(repo=repo, rev=rev, rb_repo=rb_repo,
+ rb_rev=rb_rev, verbosity=verbosity)
@Command('mozreview-create-repo', category='deploy',
description='Create a new review repository')
@CommandArgument('--verbosity', type=int,
help='How verbose to be with output')
def mozreview_create_repo(self, verbosity=None):
from vcttesting.deploy import mozreview_create_repo as deploy
return deploy(verbosity=verbosity)