deployment: update production deployment to for rb-fork changes (bug 1264203) r?gps draft
authorbyron jones <glob@mozilla.com>
Thu, 05 May 2016 13:35:00 +0800
changeset 8103 1dfff85dab1335600512515180dca9fa6b913c3e
parent 8102 53b7e5710ee70d48f46a6fa3aa24c41019e5f869
push id821
push userbjones@mozilla.com
push dateThu, 12 May 2016 05:13:51 +0000
reviewersgps
bugs1264203
deployment: update production deployment to for rb-fork changes (bug 1264203) r?gps MozReview-Commit-ID: B303N9qdGNQ
ansible/deploy-mozreview-prod.yml
ansible/tasks/install-mozreview.yml
testing/vcttesting/deploy.py
testing/vcttesting/deploy_mach_commands.py
--- 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)