Install tools necessary
Set environment variables
# .env file
APP_DATA_URL=https://apollos-ns-production-herokuapp-com.global.ssl.fastly.net
AMPLITUDE_API_KEY=doesntmatter
BUGSNAG_API_KEY=doesntmatter
Install node modules, install cocoapods, start the bundler
yarn restart
Start the sims in separate tabs
yarn ios
yarn android
When you're ready to submit work for review, add a PR pointed to the master
branch. We adhere to Conventional Commits branch naming, mostly so our changelog can be automated. Your PR title needs to be in the following format:
[feat|fix|chore|perf]: A Concise, Easily Understood Titlecased PR Name
The first part tells our magic changelog fairies what to do with the commit. The name should be understood by non-technical people. Specifically so our product owners and customer support team can find it when they're hunting for completed bug fixes.
Once you feel good about the work and you've added screenshots, GIFs, and test coverage, add a "ready for review" label to the PR and assign someone for code review and approval.
Nothing fancy here. We assume that any build in Beta has been tested and hasn't changed for a given period of time. Our current rule is one week. There should be nothing to do here except push the existing Beta build to production. Check the push time in the respective Apple and Google stores and if it's been a week since the last Beta build, go ahead and push to production.
First thing you'll need to do is freeze any PRs from being merged while we QA the new version. We use a tool called Merge Freeze to add a Github branch rule. You can use the website or our slack integration like this:
/mergefreeze freeze
Next, bump the version numbers and post a Github release
yarn bump
QA the app on Android and iOS and once everyone feels good, promote the alpha build to beta in the Apple and Google store control panels. Don't forget to write good release notes!
Once you confirm the beta has been pushed successfully by confirming a build number (or new release notes) in the app, you can unfreeze the branch in slack:
/mergefreeze unfreeze