Fix orchestrated Desktop mirror tag validation

Problem:
Orchestrated Desktop releases passed an empty direct tag input to the R2 mirror revalidation step, blocking Preview publication and the next Stable mirror.

Root cause:
The mirror job used inputs.tag even though Preview and Stable orchestrators authorize releases through inputs.approved_cli_tag.

Fix:
Revalidate the orchestrator-approved CLI tag in the mirror job and lock the mapping with a workflow contract regression assertion.

Verification:
- bash scripts/release-workflows.test.sh
- git diff --check
This commit is contained in:
SivanCola committed 2026-08-01 11:45:14 +08:00
1 parent be16778f70
commit 1ec831e37c
2 files changed
+7 -1

No files matched your search

+1 -1
View File
@@ -737,7 +737,7 @@ jobs:
- name: Revalidate approved release ref
if: ${{ inputs.orchestrated }}
env:
RELEASE_TAG: ${{ inputs.tag }}
RELEASE_TAG: ${{ inputs.approved_cli_tag }}
APPROVED_SHA: ${{ inputs.approved_sha }}
run: bash scripts/verify-release-tag.sh
+6
View File
@@ -84,6 +84,12 @@ grep -Fq 'bash scripts/resolve-desktop-candidate.sh' "$repo_root/.github/workflo
[ "$(grep -Fc 'path: release-control' "$repo_root/.github/workflows/release-desktop.yml")" = "2" ]
[ "$(grep -Fc 'ref: ${{ github.workflow_sha }}' "$repo_root/.github/workflows/release-desktop.yml")" -ge 2 ]
[ "$(grep -Fc 'bash release-control/scripts/resolve-desktop-candidate.sh' "$repo_root/.github/workflows/release-desktop.yml")" = "2" ]
[ "$(grep -Fc 'RELEASE_TAG: ${{ inputs.approved_cli_tag }}' "$repo_root/.github/workflows/release-desktop.yml")" = "3" ]
if sed -n '/^ mirror:/,$p' "$repo_root/.github/workflows/release-desktop.yml" |
grep -Fq 'RELEASE_TAG: ${{ inputs.tag }}'; then
echo "Desktop mirror must revalidate the orchestrator-approved CLI tag" >&2
exit 1
fi
if sed -n '/name: publish release/,/name: mirror to R2/p' \
"$repo_root/.github/workflows/release-desktop.yml" |
grep -Eq 'bash scripts/(resolve-desktop-candidate|validate-desktop-release-manifest|publish-desktop-github-release)\.sh'; then