Sibling Blog Post regarding Branching Strategy

Steps to Refresh the Staging/QA Environment

We are presently using libvirt8.library.nd.edu as our quality assurance/staging machine. The target audience for this blog post is our internal team. However you may find some high level ideas helpful.

First, understand the branching strategy. More on the branching strategy for releasing CurateND

Make sure that CurateND’s code is fresh:

  1. In CurateND’s curatend-deploy-2014-04-29 branch
  2. bundle update curate
  3. commit those changes
  4. push those changes to CurateND repository
  5. In curatend-with-vanilla-data branch
  6. git rebase curatend-deploy-2014-04-29
  7. git push -f those changes to CurateND repository

Update the Data and Production Code

ACHTUNG: Pay attention to the deploy_tag parameter. Due to the constraints of our Jenkin’s implementation, Capistrano tasks must be run from the master branch. Which means these maintenance tasks are on our master branch.

  1. Rebuild the Fedora, SOLR, application database Jenkin’s Task
    • host: libvirt8.library.nd.edu
  2. Deploy the application changes (because you’ll run updates against this) Jenkin’s Task
    • cap_task: deploy
    • host: libvirt8
    • deploy_tag: curatend-with-vanilla-data
  3. Migrate the application database to reflect Jenkin’s Task
    • cap_task: maintenance:vanilla_to_nd_schema
    • host: libvirt8
    • deploy_tag: master
  4. Migrate the work data structures Jenkin’s Task
    • cap_task: maintenance:migrate_metadata
    • host: libvirt8
    • deploy_tag: master
  5. Review Migrator Log on libvirt8:
    • CURATEND_ROOT/log/staging-migrator.log
  6. Migrate the profile section access policies Jenkin’s Task
    • cap_task: maintenance:update_profile_section_to_open_access
    • host: libvirt8
    • deploy_tag: master
  7. Deploy the application changes again Jenkin’s Task
    • cap_task: deploy
    • host: libvirt8
    • deploy_tag: curatend-with-vanilla-data

Go visit libvirt8.library.nd.edu

Now go and kick the tires. If you find problems, report and capture those. It may require a updating the code or refreshing the data.