Skip to content
This repository has been archived by the owner on Jan 5, 2021. It is now read-only.

Release Process

Adam Wead edited this page Apr 9, 2019 · 3 revisions

Tagging MVP Releases

Each MVP release is tagged before its deployed:

git tag -a 0.x.0 -m "Tagging MVP x release"
git push --tags
bundle exec cap qa deploy

Resetting QA

Prior to each demo or retrospective, its good to have a clean system with no leftover objects. Log into QA and reset the system:

RAILS_ENV=production bundle exec rake cho:benchmark:reset
touch tmp/restart.txt

Run Benchmarks

After each MVP release, run benchmark tests to capture any changes in performance. Log into QA, and from the application directory:

RAILS_ENV=production bundle exec rake cho:benchmark:reset
RAILS_ENV=production time bundle exec rake cho:benchmark:collections[100000]
RAILS_ENV=production bundle exec rake cho:benchmark:reset
RAILS_ENV=production time bundle exec rake cho:benchmark:works[100]

This will take several hours. When it's finished, copy the csv output files from the tmp directory to your home directory to later analysis.

Once the csv files have been copied down to your local machine, you can add up the total time for each test:

cat cho_metrics_collection_100000.csv | awk -F, '{gsub(/\(|\)|m|s/,"",$4)}1' | awk '{sum += $4} END {print sum}'
cat cho_metrics_work_100.csv | awk -F, '{gsub(/\(|\)|m|s/,"",$4)}1' | awk '{sum += $4} END {print sum}' 

Graphical displays of the test results are in a different repo and should probably be moved. The charts are built using Chart.js, and modifications are required. For an example of these changes, see https://github.com/awead/awead.github.io/commit/7ce16956d18090e77699b702d7c0d2784813db70.

To run a longer collection test with 1 million records:

RAILS_ENV=production bundle exec rake cho:benchmark:reset
RAILS_ENV=production time bundle exec rake cho:benchmark:collections[1000000]

Note that this will take over 24 hours to complete.