Skip to content

How do we deploy this thing?

Teagan edited this page Dec 20, 2017 · 9 revisions

Deployment

This repo is set to automatically deploy to Heroku. Any time there is a merge into develop, the develop branch will be deployed to refugestaging.herokuapp.com. Any time there is a merge into master, the master branch will be released to refugerestrooms.org

When making a release, you should do the following:

  1. Check the status of the app on refugestaging.herokuapp.com and make sure it's functional.
  2. Make sure the the most recent build of develop is passing on TravisCI
  3. Run git flow release start %{release number}
  4. Run git shortlog --grep "Merge pull request #" %{previous release}..HEAD and copy the contents into a new issue with the release tag here on github. This command gives you a list of PRs merged since the previous release.
  5. git flow release finish and copy the contents of #4 into the release tags.
  6. git push in the master branch and git push --tags
  • this will trigger the heroku deploy to production.

Manual Releases

Currently, we deploy to Heroku. Our application is small enough that it is reasonably cheap to host on Heroku, and we don't mind the server having to wake up if nobody has accessed the site in a while.

We have both a staging and a production instance on Heroku. The staging instance can be found at http://refugestaging.herokuapp.com/

Here are the steps to deploy:

  1. Talk to @tkwidmer about getting access as a collaborator for both the production and staging Heroku instances.
  2. Link your local repo to the Heroku remote repos. I suggest doing it this way:
  1. git flow release start %{release number}
  2. git push staging release/%{release number}:master and verify your changes on staging. (run any migrations heroku run rake db:migrate --remote staging)
  3. Run git shortlog --grep "Merge pull request #" %{previous release}..HEAD and copy the contents.
  4. git flow release finish and copy the contents of #5 into the release tags.
  5. git push and git push --tags
  6. git push production master and run any migrations heroku run rake db:migrate --remote production