-
Notifications
You must be signed in to change notification settings - Fork 13
Deploying on Production
-
Create a new branch from develop, move to the branch, and rename it to
release-<version>
. e.g.release-v7.7.7
. This is to not block the development process. So during the process of preparing a new release, pull requests that are not in the release plan can still be merged into the development branch. -
Update text related to version everywhere. On the release branch, update the
PROD_TAG
to the new version in Makefile and run
old_tag=<the version prior to the new release> make update_prod_version_tag
This will update the version in production.yml
and rodan-main/code/rodan/__init__.py
. e.g. to move from v7.7.6
to v7.7.7
, do old_tag=v7.7.6 make update_prod_version_tag
- Make a new commit on changes made in step 2. Put the commit message in this way:
Release v7.7.7
- <new feature one>
- <new feature two>
- ...
- <bug fix one>
- <bug fix two>
Be sure to include ALL changes in this release.
- Add a git tag. Use
git tag -fa v7.7.7
to add a git tag to the new commit. You'll be requested to put messages on the tag you just added. Just copy-paste the commit messages you wrote in step 2.
-
Push the commit AND THE TAG to github.
-
Setup a build rule on Docker Hub. Go to the docker hub, and set up a build rule to build on the release branch. Put the release branch name (
release-v7.7.7
) inSource
andplaceholder
inDocker Tag
and clickSave and Build
. If you've tagged and named the release branch correctly, images are built and tagged asv7.7.7
. -
Make pull requests to merge the release branch into
master
anddevelop
. After docker finishes building and pushing images, make pull requests to merge the release branch into the master and develop branches. -
Pull the updated master branch on production server. Once the pull request is approved and the release branch is in the master branch, go to production and do
git pull
on the master branch to keep updated with github. -
Deploy rodan on production server. Do a series of makefile operations to deploy the new rodan on production server.
make stop
make clean
make pull_prod
make deploy_production
- Remove the release branch. After the release branch is merged into BOTH master and develop branches, delete the release branch. The release branch only exists when we're in the process of making a release. When a release is already on air, we remove the release branch.
- Repository Structure
- Working on Rodan
- Testing Production Locally
- Working on Interactive Classifier
- Job Queues
- Testing New Docker Images
- Set up Environment Variables
- Set up SSL with Certbot
- Set up SSH with GitHub
- Deploying on Staging
- Deploying on Production
- Import Previous Data