From f5f90bb2027eee4a8fcdf9793153f89527c05257 Mon Sep 17 00:00:00 2001 From: Bob Lee Date: Fri, 18 Sep 2026 20:58:21 +0800 Subject: [PATCH] Require published latest-v1.json to declare the macOS installers The pre-upload verifier already demands darwin-aarch64 and darwin-x86_64 manual installers next to Windows. The post-publish readback still only asked for Windows, so a release could lose the .dmg entries between staging and GitHub Latest and still go green. --- .github/workflows/desktop-package.yml | 2 +- scripts/check-github-config.test.mjs | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/desktop-package.yml b/.github/workflows/desktop-package.yml index 02acca5a66..9d31075862 100644 --- a/.github/workflows/desktop-package.yml +++ b/.github/workflows/desktop-package.yml @@ -842,7 +842,7 @@ jobs: --manifest latest.published.json \ --version "${{ needs.prepare.outputs.version }}" \ --required-platforms "${REQUIRED_UPDATER_PLATFORMS}" \ - --required-manual-platforms "windows-x86_64" \ + --required-manual-platforms "windows-x86_64,darwin-aarch64,darwin-x86_64" \ --check-urls true - name: Verify published Linux binaries manifest diff --git a/scripts/check-github-config.test.mjs b/scripts/check-github-config.test.mjs index e6a23c9d4d..9198893bdd 100644 --- a/scripts/check-github-config.test.mjs +++ b/scripts/check-github-config.test.mjs @@ -1183,6 +1183,15 @@ test('Desktop packaging keeps beta identity explicit and stable-safe', () => { (step) => step.name === 'Publish beta channel manifest', ); assert.ok(verifyIndexPublished >= 0 && verifyIndexPublished < promoteIndex); + const requiredManual = 'windows-x86_64,darwin-aarch64,darwin-x86_64'; + assert.match( + uploadSteps.find((step) => step.name === 'Verify updater manifest').run, + new RegExp(`--required-manual-platforms "${requiredManual}"`), + ); + assert.match( + uploadSteps[verifyIndexPublished].run, + new RegExp(`--required-manual-platforms "${requiredManual}"`), + ); assert.doesNotMatch(workflow.jobs['linux-binaries'].if, /release_channel/); assert.equal( uploadSteps.find((step) => step.name === 'Stage release assets').if,