OpenMRS GitHub Actions Workflows
openmrs-contrib-gha-workflows holds the reusable GitHub Actions workflows OpenMRS uses to build, test and release its frontend (O3) and backend (Maven) modules. Repositories call them instead of maintaining their own copies, so fixes and improvements reach every module at once.
The workflows are a community resource too: implementers outside the OpenMRS GitHub organization can use them to build and publish their own modules to their own npm scopes and Maven repositories.
Workflows
| Workflow | Purpose |
|---|---|
| Build frontend module | Build, lint, type-check and test an O3 module |
| Release frontend module | Publish pre-releases and releases to npm |
| Frontend PR title check | Enforce the O3 pull request title format |
| Frontend PR description check | Enforce the O3 pull request template |
| Build Maven project | Build and test any Maven project, deploying SNAPSHOTs |
| Build backend module | Build an OpenMRS backend module across Java versions |
| Release backend module | Release a Maven module with maven-release-plugin |
| Upload coverage | Send JaCoCo coverage to Codecov, including from forks |
| OWASP Dependency-Check | Scan dependencies for known vulnerabilities (OpenMRS only) |
| Pull translations / Push translations | Sync translations with Transifex (OpenMRS only) |
| Claude PR review | Automated pull request review |
Versions
As with any reusable GitHub Actions workflows , when calling you must specify a {ref} for OpenMRS repos, we always use @main to get the most up-to-date version. For stability, however, it may be better to either use a version tag, e.g., @v1 or, like this repo does for the reusable components it uses, pin to a specific commit hash. You can easily setup Dependabot to keep either of these latter two up-to-date, which may be preferable as @main may occassionally break.