-
Notifications
You must be signed in to change notification settings - Fork 0
Manual numbered prerelease falsely rejects newer target from shallow checkout #293
Copy link
Copy link
Open
Labels
area:release-publishingArea: generated triage label for release publishing.Area: generated triage label for release publishing.area:release-workflowArea: GitHub Actions release/build workflows.Area: GitHub Actions release/build workflows.needs:reviewNeeds: generated triage label for review.Needs: generated triage label for review.priority:P2Priority P2: high-impact near-term work.Priority P2: high-impact near-term work.risk:highRisk: changes critical working behavior or release/runtime paths.Risk: changes critical working behavior or release/runtime paths.status:blockedHuman-readable workflow status: blocked by a failing gate or dependency.Human-readable workflow status: blocked by a failing gate or dependency.system:ciSystem: CI, tests, or quality gates.System: CI, tests, or quality gates.system:packagingSystem: packaging, installers, or release artifacts.System: packaging, installers, or release artifacts.type:bugType: bug or broken behavior.Type: bug or broken behavior.type:ciType: CI, release, or quality-gate work.Type: CI, release, or quality-gate work.
Milestone
Description
Metadata
Metadata
Assignees
Labels
area:release-publishingArea: generated triage label for release publishing.Area: generated triage label for release publishing.area:release-workflowArea: GitHub Actions release/build workflows.Area: GitHub Actions release/build workflows.needs:reviewNeeds: generated triage label for review.Needs: generated triage label for review.priority:P2Priority P2: high-impact near-term work.Priority P2: high-impact near-term work.risk:highRisk: changes critical working behavior or release/runtime paths.Risk: changes critical working behavior or release/runtime paths.status:blockedHuman-readable workflow status: blocked by a failing gate or dependency.Human-readable workflow status: blocked by a failing gate or dependency.system:ciSystem: CI, tests, or quality gates.System: CI, tests, or quality gates.system:packagingSystem: packaging, installers, or release artifacts.System: packaging, installers, or release artifacts.type:bugType: bug or broken behavior.Type: bug or broken behavior.type:ciType: CI, release, or quality-gate work.Type: CI, release, or quality-gate work.
Bug description
A manually promoted numbered prerelease fails during the final publish job even when the selected target commit is newer than the latest published prerelease.
The failed job also creates an entry under Deployments with environment
release, while no new entry appears under Releases.Reproduction
Workflow:
Desktop Build and Numbered Prereleasemain.release_ref: mainand enablepublish_release.ea21c3c3626cab80f15cbc3d747a05aa177f33a6.Publish manually promoted prereleasefails inRe-check sequence and publishwith:Observed run: https://github.com/AetherMesh-AI/aethermesh-core/actions/runs/29970384473
Evidence
v0.2.0-alpha.118atcac87db53ed501453b48c9027bacc6decbb943a8ea21c3c3626cab80f15cbc3d747a05aa177f33a6Therefore the target really is a descendant of
.118and contains newer commits.Suspected root cause
Both publication jobs check out the target with the default shallow depth:
The composite action fetches
origin mainand the numbered tags, but it does not explicitly deepen or unshallow the checkout before running:The shallow boundary can make Git report false for a valid ancestor relationship, causing the misleading
target is not newerfailure.Why it appears under Deployments
The manual publish job declares:
GitHub Actions automatically creates a deployment record for jobs that reference an environment. In this run, the job failed before reaching
gh release create, so GitHub recorded a failedreleasedeployment but did not createv0.2.0-alpha.119under Releases.Expected behavior
.118publishes the next immutable prerelease,.119, with all four validated desktop artifacts and source metadata.releaseenvironment is intentional and clearly distinguished from a GitHub Release. If a Deployment entry is not desired, the workflow should preserve any required approval/security behavior without creating misleading deployment records.Acceptance criteria
merge-baseandrev-listchecks.maincommit creates exactly the next numbered prerelease and does not move an existing tag.environment: releaseshould remain. If it remains, document that it creates Deployment records and confirm failed publication does not imply a GitHub Release was created.