Skip to content

evergreen-tracks: no supported way to move latest outside a release cut #37036

Description

@sfreudenthaler

Problem

When the 2026-08-12 release cut failed to move latest (#37025 — Hub started refusing anonymous tag pagination), there was no supported way to repoint it:

  • cicd_evergreen-tracks-promote.yml hardcodes --tracks standard,trailing and has no input to change that.
  • cicd_evergreen-tracks-admin.yml only does taint / untaint / hold / release-hold.
  • Re-running the failed release job replays the pre-fix commit, so it just fails again.

The only route left was cutting a throwaway release to repoint a tag — which is what we did (26.08.12-02, code-identical to -01 apart from the CI fix). That works, but rebuilding artifacts, redeploying to Artifactory, regenerating release notes and publishing a changelog entry to dev.dotcms.com is a lot of blast radius for moving one floating tag, and it puts a phantom release in front of customers.

Proposal

Add a tracks dispatch input to the promote workflow, defaulting to standard,trailing.

  • The daily cron and every existing dispatch behave exactly as today — a schedule event carries no inputs at all, which the || fallback covers.
  • tracks=latest becomes the break-glass path, behind the same evergreen-tracks-apply required-reviewer gate as any other manual move.
  • The apply job still holds the evergreen-tracks-registry lock, so it cannot race the release pipeline's latest-promote. If a GA cut repoints latest while an approval sits, the existing drift check makes apply refuse rather than fight the release pipeline — the correct outcome.

Also fixes a latent bug

The moved-summary grep matches only ^(standard|trailing):

MOVES=$(printf '%s\n' "$CURRENT_PLAN" | grep -E '^(standard|trailing) (\(held\) )?-> ' ...)

So a latest move would apply correctly but report moved=false and post no Slack notice. Silent success is the one outcome this workflow is built to avoid. Widened to include latest.

Related: #37025, #37028.

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status
    New

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions