Shifting to using the correct environments for testing

Something like this?

  • int01 – OpenMRS Platform built from latest commit to core or any modules bundled in the platform. Purpose is to prove OpenMRS Platform still runs and to serve for automated testing.

  • int02 – OpenMRS Reference Application built from latest commit to core or any module distributed in the ref app. Purpose is to prove OpenMRS Community Distribution still runs and for automated testing.

  • int03+ – Used whenever we need an additional server for automated testing (e.g., automated testing of a new module that doesn’t belong on or might unnecessarily disrupt the operation of int01 or int02).

  • qa01 – OpenMRS Platform built from latest commit. Used for manual testing (e.g., making manual REST calls to it). This would be similar to a headless version of demo.openmrs.org, but would be running a version built from the latest commit (to core or any module bundled in the platform.

  • qa02 – OpenMRS Reference Application built from latest commit. Used for manual testing. This would be similar to demo.openmrs.org, but would be running a version built from the latest commit (to core or any module distributed in the ref app).

  • qa03+ – Used whenever we need to perform manual testing for an application or module that doesn’t belong on or might unnecessarily disrupt the operation of qa01.

  • uat01 – OpenMRS Platform from manually triggered build. Purpose is to run a specific snapshot of the platform released to uat01, so specific releases could be user-tested during preparation for a new release.

  • uat02 – OpenMRS Reference Application from manually triggered build. Purpose is to run a specific snapshot of the reference application released to uat02, so specific releases could be user-tested during preparation for a new release.

  • uat03+ – Used whenever we are releasing something other than the reference application and need a server onto which trigger new builds as we work through user acceptance testing of the impending release.

If we agree, then:

  • CI should be deploying “nightly” (build from latest commit) of platform to int01 & qa01 and the reference app to int02 and qa02.

  • Automated testing by CI of platform or reference application should be performed against int01 and int02, respectively.

  • Any /dev/3+ should be able to manually trigger a new release (of a particular commit) of the platform to uat01 or the reference application to uat02.