Hey team!
I’ve been looking at our 03 E2E testing setup, and I think we have a great opportunity to make it more flexible and version-aware. Right now, our tests always run against the latest nightly
builds of OpenMRS Docker images (openmrs/openmrs-reference-application-3-*:nightly
). While this ensures we test against recent changes, it doesn’t account for version compatibility—meaning we can’t easily:
- Reproduce bugs reported in older OpenMRS versions (e.g., “This broke in 3.2.1”).
- Verify backward compatibility before releases (e.g., “Does our new feature work in 3.1.0?”).
- Test against stable releases instead of relying solely on
nightly
, which might include unreviewed changes.
I’ve prototyped changes to:
- Parameterize Docker image tags (e.g.,
:nightly
→:${TAG:-nightly}
) so we can override versions. - Modify the E2E script to accept version args (e.g.,
APP_SHELL_VERSION=3.2.1
). - Update GitHub Actions to support manual triggers with version inputs
Benefits:
Test against specific versions (e.g.,
3.1.0
, 3.2.1
) on demand.
Keep the default
nightly
behavior for CI.
No disruption to existing workflows.
Thoughts from the community:
- Does this align with our testing goals?
- Should we add scheduled jobs to test against stable versions automatically?
- Are there other components (e.g., APIs, modules) we should version-lock in tests?
Example of triggering a version-specific test:
APP_SHELL_VERSION=3.2.1 BACKEND_TAG=3.2.1-with-data ./run-e2e-docker-env.sh
Any thoughts?,