Skip to content

ci(release): promote plugins to stable on release tag push - #6461

Merged
tuntoja merged 3 commits into
developfrom
MON-202120-plugins-tag-promotion
Oct 5, 2026
Merged

tuntoja merged 3 commits into
developfrom
MON-202120-plugins-tag-promotion

Conversation

@tuntoja

@tuntoja tuntoja commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

Fixes MON-202120 (follow-up of #6460)

Description

  • Pushing a plugins-YYYYMMNN tag, which release-new creates, now promotes testing to stable. The master flow keeps working unchanged until cutover.
  • get-environment gains a new script, .github/scripts/release/get-release-tag-context.sh. For a release tag it:
    • sets stability to stable;
    • takes the version from the tag name and the release type from the annotated tag message (release/hotfix);
    • skips the workflow when none of its on.push.paths changed since the previous plugins-* tag, which keeps "only changed modules promote".
  • The "find the merged PR" lookup for master pushes, previously copied 12 times plus once in package-delivery, now lives only in get-environment, unchanged. It runs on push events only.
  • The 13 promoting workflows also trigger on tags: ["plugins-*"], and their promote steps use needs.get-environment.outputs.release_type. release-tag is skipped on tag pushes.

How this pull request can be tested ?

  • Local harness for the tag-context script, 37 checks: which modules promote (src, plink, snmp-rs globs, windows), hotfix handling and previous tag by number, fallbacks (no previous tag, missing workflow file, no yq), rejection of lightweight tags and bad messages, and every workflow's triggers.
  • The real get-environment scripts run under node with mocked core/github/context, 15 scenarios: release and hotfix tags, and the unchanged master push, PR, testing and unstable paths.
  • actionlint (CI flags), yamllint and shellcheck all pass.
  • End to end: a real release-new run, planned as the last step of MON-202120.

A plugins-YYYYMMNN tag push is stable: version from the tag, release type
from its message, skipped when the workflow push paths did not change.
The stable branch pull request lookup moves here from the workflows.
Promoting workflows also trigger on plugins-* tags and take the release
type from get-environment; release-tag is skipped on tag pushes.
@tuntoja
tuntoja marked this pull request as ready for review October 3, 2026 11:09
@tuntoja
tuntoja requested a review from a team as a code owner October 3, 2026 11:09
@tuntoja
tuntoja requested review from Tpo76 and pkriko and removed request for a team October 3, 2026 11:09
kduret
kduret previously approved these changes Oct 5, 2026
A failed git diff now fails the step instead of skipping promotion; the diff
lists both sides of renames and leaves non-ascii paths unquoted.
@tuntoja tuntoja changed the title ci: promote to stable on plugins-* release tag push ci(release): promote plugins to stable on release tag push Oct 5, 2026
@tuntoja
tuntoja merged commit 97cc468 into develop Oct 5, 2026
10 checks passed
@tuntoja
tuntoja deleted the MON-202120-plugins-tag-promotion branch October 5, 2026 14:00
Nivoky added a commit that referenced this pull request Oct 6, 2026
Resolve conflicts with #6461, which removed the "Get release type" step
from the deliver jobs and moved release type detection to
get-environment.yml. Keep develop's removal of that step, and bump the
relocated actions/github-script call in get-environment.yml to v9.0.0 to
match the rest of this update.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants