Problem Statement
When .github/workflows/cicd_6-release.yml is dispatched via workflow_dispatch
from a branch other than main (e.g. a release branch like 26.04.11, a hotfix
branch, or an experimental Java-variant branch), two side effects fire that
should be exclusive to main:
-
Docker :latest tag is overwritten. The image built from the non-main
branch replaces :latest, even though main is the source of truth for what
:latest should point to. Users pulling dotcms/dotcms:latest may receive
an image that does not correspond to main.
-
GitHub issue labels are mis-applied. Issues currently labeled
Next Release (set when fixes merge to main) get re-labeled with the
dispatched release_version. A fix that landed on main and is awaiting
the next release will be wrongly stamped with a release version that does
not actually contain that fix.
Concrete example: a fix is merged to main and carries the Next Release
label. A maintenance release is dispatched from branch 26.04.11. The fix
is not in 26.04.11, but the issue ends up labeled 26.04.11, making
the GitHub release labels unreliable for downstream consumers.
Root cause
is_latest in cicd_comp_release-prepare-phase.yml (lines 115–117) is
computed purely from the version-string regex and never consults
github.ref_name.
update_github_labels in cicd_6-release.yml (line 153) is passed straight
from the workflow input with no branch guard.
Steps to Reproduce
- Open the GitHub Actions UI → select the
-6 Release Process workflow.
- In the "Use workflow from" dropdown, pick a branch other than
main
(e.g. a release branch like 26.04.11 or any hotfix branch).
- Enter a standard release version (e.g.
26.04.11-01); leave
update_github_labels checked (default).
- Run the workflow.
- Observe:
- The
Deployment job pushes the Docker image with the :latest tag
(visible in the deploy-docker step logs and on Docker Hub).
- The
Release job relabels GitHub issues currently tagged Next Release
to the dispatched release_version, even though those fixes are not in
this branch.
Acceptance Criteria
Suggested fix
Two two-line edits in .github/workflows/cicd_6-release.yml:
# Line 124
latest: ${{ needs.release-prepare.outputs.is_latest == 'true' && github.ref_name == 'main' }}
# Line 153
update_github_labels: ${{ github.event.inputs.update_github_labels == 'true' && github.ref_name == 'main' }}
dotCMS Version
CI/CD pipeline — current main branch (version-agnostic).
Severity
Medium - Some functionality impacted
Links
Problem Statement
When
.github/workflows/cicd_6-release.ymlis dispatched viaworkflow_dispatchfrom a branch other than
main(e.g. a release branch like26.04.11, a hotfixbranch, or an experimental Java-variant branch), two side effects fire that
should be exclusive to
main:Docker
:latesttag is overwritten. The image built from the non-mainbranch replaces
:latest, even thoughmainis the source of truth for what:latestshould point to. Users pullingdotcms/dotcms:latestmay receivean image that does not correspond to
main.GitHub issue labels are mis-applied. Issues currently labeled
Next Release(set when fixes merge tomain) get re-labeled with thedispatched
release_version. A fix that landed onmainand is awaitingthe next release will be wrongly stamped with a release version that does
not actually contain that fix.
Concrete example: a fix is merged to
mainand carries theNext Releaselabel. A maintenance release is dispatched from branch
26.04.11. The fixis not in
26.04.11, but the issue ends up labeled26.04.11, makingthe GitHub release labels unreliable for downstream consumers.
Root cause
is_latestincicd_comp_release-prepare-phase.yml(lines 115–117) iscomputed purely from the version-string regex and never consults
github.ref_name.update_github_labelsincicd_6-release.yml(line 153) is passed straightfrom the workflow input with no branch guard.
Steps to Reproduce
-6 Release Processworkflow.main(e.g. a release branch like
26.04.11or any hotfix branch).26.04.11-01); leaveupdate_github_labelschecked (default).Deploymentjob pushes the Docker image with the:latesttag(visible in the
deploy-dockerstep logs and on Docker Hub).Releasejob relabels GitHub issues currently taggedNext Releaseto the dispatched
release_version, even though those fixes are not inthis branch.
Acceptance Criteria
main,Docker
:latestis not updated.main,GitHub issues are not relabeled (the
update_github_labelsstep isskipped or evaluates
false).mainwith a standard (non-LTS) version,:latestis still updated as today.
mainwithupdate_github_labels = true,Next Releaseissues are still relabeled as today.notification continue to obey their existing workflow inputs and are
not branch-gated (they are legitimate from a non-
mainrelease branch).Suggested fix
Two two-line edits in
.github/workflows/cicd_6-release.yml:dotCMS Version
CI/CD pipeline — current
mainbranch (version-agnostic).Severity
Medium - Some functionality impacted
Links
dotcms-dev:latest;both are about gating
:latestcorrectly).