Pre-release Testing Checklist
Please follow pre-release checklist strictly to avoid delays/headaches in prod release.
One time
- Create a new (permanent) user pool called pre-release
- Create users in the same pool for each implementation, with the right organization
Prepare a new replicated environment
- Replicate production environment and create a temporary environment called pre-release. Following are the steps to do this:
- Go to infra repo.
- Update minor_version file at the path "server/version/minor_version" with the latest version that you need to deploy. You can get last successful version from "build" job of openchs-server workflow from CircleCI.
- Run
make plan-prerelease-from-prod
. - Create prerelease environment using command
make create-prerelease-from-prod
. - Check prerelease server logs to make sure that server has started.
- Also make sure from the logs that all migrations have run successfully.
- Warning: If any migration is failing or taking too long make sure to fix the issue and please don't manually make the server skip a migration. Skipped migration will result in headache during the prod release.
Deployment
- Deploy new server build
- Deploy core metadata.
- Deploy all the implementations that you are going to deploy on Production.
- Warning: If you miss out deploying any implementation then you lose the chance to catch errors that may come during prod release.
Test existing app with existing implementations
- Build the version of the app corresponding to the one available on the play store on your machine or circle-ci pointing to pre-release.
- Use this app. Perform sync. Test the app.
Test new app with existing/new implementations
- Update the app on the device you are testing
- Test the app for each implementation (Uninstall, Install, Login, Any other testing)
- Ensure that you have run the "Run Rules" if required during the testing for the new customer.
Finally
- You are good to go for production release if there are no issues.
- Stop/Destroy the pre-release environment
- Right now, the make task to stop/destroy pre-release env, in infra code base is not fully functional. So terminate EC2 and delete prerelease db from RDS. Be careful while doing it.
Updated 11 months ago