Openemr devops test flex#5
Closed
kojiromike wants to merge 7 commits into
Closed
Conversation
* chore(docker/openemr): obsolete old versions
dc280af to
919cf10
Compare
919cf10 to
8c9de99
Compare
kojiromike
added a commit
that referenced
this pull request
Jun 3, 2026
Replace the three rotating build workflows with a single build-openemr.yml
whose matrix is the stable slot names [current, next, dev] x platform — never
rotated. Each job resolves the slot's real OpenEMR version at runtime by
reading the new slot symlinks docker/openemr/{current,next,dev} -> the real
version dirs, then builds from the resolved dir (push-by-digest); the merge
job publishes :<full>, the floating slot tag (current->latest, next->next,
dev->dev), and :<full>-<date>.
Because the workflow carries zero version strings it never needs rewriting on
rotation. Instead SlotRotator re-points the slot symlink when a slot's
docker_dir changes, making the symlink the build's source of truth. Drops the
build_workflow entries from versions.yml (nothing to lint there now) and the
legacy :8.0.0.3 quaternary tags.
This is the build-workflow half of step #5 (workflow consolidation, openemr#638
follow-on).
Assisted-by: Claude Code
kojiromike
added a commit
that referenced
this pull request
Jun 4, 2026
Collapse the version-named production/nightly build workflows to slot-named files so slot rotation rewrites the version pins inside them without leaving misleadingly named artifacts: build-800.yml -> build-current.yml (:latest / production) build-810.yml -> build-next.yml (:next nightly) build-811.yml -> build-dev.yml (:dev nightly) The docker dirs stay version-named: they hold real per-version Dockerfiles and are the stable targets the rotating context pin points at. Updates the registry, the rotator test fixtures, and the automation plan to the new names. This is the build-workflow half of step #5 (workflow consolidation, openemr#638 follow-on). Assisted-by: Claude Code
kojiromike
added a commit
that referenced
this pull request
Jun 4, 2026
Replace the three rotating build workflows with a single build-openemr.yml
whose matrix is the stable slot names [current, next, dev] x platform — never
rotated. Each job resolves the slot's real OpenEMR version at runtime by
reading the new slot symlinks docker/openemr/{current,next,dev} -> the real
version dirs, then builds from the resolved dir (push-by-digest); the merge
job publishes :<full>, the floating slot tag (current->latest, next->next,
dev->dev), and :<full>-<date>.
Because the workflow carries zero version strings it never needs rewriting on
rotation. Instead SlotRotator re-points the slot symlink when a slot's
docker_dir changes, making the symlink the build's source of truth. Drops the
build_workflow entries from versions.yml (nothing to lint there now) and the
legacy :8.0.0.3 quaternary tags.
This is the build-workflow half of step #5 (workflow consolidation, openemr#638
follow-on).
Assisted-by: Claude Code
kojiromike
added a commit
that referenced
this pull request
Jun 8, 2026
Collapse the version-named production/nightly build workflows to slot-named files so slot rotation rewrites the version pins inside them without leaving misleadingly named artifacts: build-800.yml -> build-current.yml (:latest / production) build-810.yml -> build-next.yml (:next nightly) build-811.yml -> build-dev.yml (:dev nightly) The docker dirs stay version-named: they hold real per-version Dockerfiles and are the stable targets the rotating context pin points at. Updates the registry, the rotator test fixtures, and the automation plan to the new names. This is the build-workflow half of step #5 (workflow consolidation, openemr#638 follow-on). Assisted-by: Claude Code
kojiromike
added a commit
that referenced
this pull request
Jun 8, 2026
Replace the three rotating build workflows with a single build-openemr.yml
whose matrix is the stable slot names [current, next, dev] x platform — never
rotated. Each job resolves the slot's real OpenEMR version at runtime by
reading the new slot symlinks docker/openemr/{current,next,dev} -> the real
version dirs, then builds from the resolved dir (push-by-digest); the merge
job publishes :<full>, the floating slot tag (current->latest, next->next,
dev->dev), and :<full>-<date>.
Because the workflow carries zero version strings it never needs rewriting on
rotation. Instead SlotRotator re-points the slot symlink when a slot's
docker_dir changes, making the symlink the build's source of truth. Drops the
build_workflow entries from versions.yml (nothing to lint there now) and the
legacy :8.0.0.3 quaternary tags.
This is the build-workflow half of step #5 (workflow consolidation, openemr#638
follow-on).
Assisted-by: Claude Code
kojiromike
added a commit
that referenced
this pull request
Jun 8, 2026
…-derived tags
Collapse build-800/810/811.yml into a single build-openemr.yml whose
matrix is the stable slot names [current, next, dev] x platform, never
rotated. Each job resolves its version at runtime from the
docker/openemr/{current,next,dev} symlinks, so the workflow holds zero
version strings and SlotRotator only re-points the symlink.
Publish each slot's true version.php-derived tag instead of the bare
symlink dir name: current -> 8.0.0.3, next -> 8.1.0, dev -> 8.1.1-dev.
This fixes current (really the 8.0.0.3 patch release) and prevents dev
from publishing a bare :8.1.1 that would collide with the eventual real
8.1.1 release.
Supporting changes: standardize 8.0.0/Dockerfile to
ARG OPENEMR_VERSION=rel-800; update versions.yml (current.full ->
8.0.0.3, dev.full -> 8.1.1-dev); update Docker Hub overview template +
renderer test; document the derivation in release-automation-plan.md.
This is the build-workflow half of step #5 (workflow consolidation,
openemr#638 follow-on) and unblocks the release-rotation PR (openemr#760).
Assisted-by: Claude Code
kojiromike
added a commit
that referenced
this pull request
Jun 8, 2026
…-derived tags
Collapse build-800/810/811.yml into a single build-openemr.yml whose
matrix is the stable slot names [current, next, dev] x platform, never
rotated. Each job resolves its version at runtime from the
docker/openemr/{current,next,dev} symlinks, so the workflow holds zero
version strings and SlotRotator only re-points the symlink.
Publish each slot's true version.php-derived tag instead of the bare
symlink dir name: current -> 8.0.0.3, next -> 8.1.0, dev -> 8.1.1-dev.
This fixes current (really the 8.0.0.3 patch release) and prevents dev
from publishing a bare :8.1.1 that would collide with the eventual real
8.1.1 release.
Supporting changes: standardize 8.0.0/Dockerfile to
ARG OPENEMR_VERSION=rel-800; update versions.yml (current.full ->
8.0.0.3, dev.full -> 8.1.1-dev); update Docker Hub overview template +
renderer test; document the derivation in release-automation-plan.md.
This is the build-workflow half of step #5 (workflow consolidation,
openemr#638 follow-on) and unblocks the release-rotation PR (openemr#760).
Assisted-by: Claude Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #
Short description of what this resolves:
Changes proposed in this pull request: