mirror of
https://github.com/stablyai/orca.git
synced 2026-11-13 17:37:40 +00:00
Keep dropped-macOS updaters on their last compatible build and explain why (#38777)
* Keep dropped-macOS updaters on their last compatible build and explain why Stamp minimumSystemVersion into every mac update manifest from the built app's LSMinimumSystemVersion, and refuse to publish an ungated release. When the updater withholds a newer release for this macOS, show a one-time notice and say so in Settings and the update card. * Trim the unsupported-Mac notice copy
This commit is contained in:
@@ -401,7 +401,9 @@ jobs:
|
||||
with:
|
||||
ref: ${{ github.workflow_sha }}
|
||||
path: .workflow-tools
|
||||
sparse-checkout: config/scripts/desktop-distribution/macos/adhoc-mac-manifests.mjs
|
||||
sparse-checkout: |
|
||||
config/scripts/desktop-distribution/macos/adhoc-mac-manifests.mjs
|
||||
config/scripts/desktop-distribution/macos/gate-mac-update-manifests.mjs
|
||||
sparse-checkout-cone-mode: false
|
||||
persist-credentials: false
|
||||
|
||||
@@ -440,7 +442,11 @@ jobs:
|
||||
env:
|
||||
MAC_ARCH: ${{ matrix.arch }}
|
||||
MAC_VERSION: ${{ needs.orcad-template-support.outputs.version }}
|
||||
run: node .workflow-tools/config/scripts/desktop-distribution/macos/adhoc-mac-manifests.mjs stage "$MAC_ARCH" "$MAC_VERSION" dist .build/mac-manifests
|
||||
run: |
|
||||
set -euo pipefail
|
||||
# Builder cannot write this field, so older macOS updaters would install a build that won't launch.
|
||||
node .workflow-tools/config/scripts/desktop-distribution/macos/gate-mac-update-manifests.mjs dist
|
||||
node .workflow-tools/config/scripts/desktop-distribution/macos/adhoc-mac-manifests.mjs stage "$MAC_ARCH" "$MAC_VERSION" dist .build/mac-manifests
|
||||
|
||||
- name: Mint adhoc repo token
|
||||
id: app_token
|
||||
|
||||
@@ -330,6 +330,18 @@ jobs:
|
||||
owner: stablyai
|
||||
repositories: orca-daily
|
||||
|
||||
# Builder cannot write this field, so older macOS updaters would install a build that won't launch.
|
||||
- name: Gate the update manifest on the minimum macOS
|
||||
if: steps.freshness.outputs.should_build == 'true'
|
||||
shell: bash
|
||||
env:
|
||||
GH_TOKEN: ${{ steps.app_token_final.outputs.token }}
|
||||
TAG: ${{ steps.release.outputs.tag }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
node config/scripts/desktop-distribution/macos/gate-mac-update-manifests.mjs dist
|
||||
gh release upload "$TAG" dist/*-mac.yml --repo "$DAILY_REPO" --clobber
|
||||
|
||||
# Verify latest-mac.yml before exposing its release to prevent picker downloads returning 404.
|
||||
- name: Verify update manifest published
|
||||
if: steps.freshness.outputs.should_build == 'true'
|
||||
|
||||
@@ -298,6 +298,17 @@ jobs:
|
||||
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
|
||||
# Builder cannot write this field, so older macOS updaters would install a build that won't launch.
|
||||
- name: Gate the update manifest on the minimum macOS
|
||||
shell: bash
|
||||
env:
|
||||
GH_TOKEN: ${{ steps.app_token_publish.outputs.token }}
|
||||
TAG: ${{ steps.release.outputs.tag }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
node config/scripts/desktop-distribution/macos/gate-mac-update-manifests.mjs dist
|
||||
gh release upload "$TAG" dist/*-mac.yml --repo "$HOURLY_REPO" --clobber
|
||||
|
||||
# Verify latest-mac.yml before exposing release; missing manifests cause picker download 404s.
|
||||
- name: Verify update manifest published
|
||||
shell: bash
|
||||
|
||||
@@ -240,6 +240,22 @@ jobs:
|
||||
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
|
||||
# Builder cannot write this field, so older macOS updaters would install a build that won't launch.
|
||||
- name: Gate the update manifest on the minimum macOS
|
||||
# Tags cut before the gate keep their manifest unchanged.
|
||||
if: hashFiles('config/scripts/desktop-distribution/macos/gate-mac-update-manifests.mjs') != ''
|
||||
shell: bash
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAG: ${{ inputs.tag }}
|
||||
PUBLISH: ${{ !inputs.qualification_only }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
node config/scripts/desktop-distribution/macos/gate-mac-update-manifests.mjs dist
|
||||
if [ "$PUBLISH" = true ]; then
|
||||
gh release upload "$TAG" dist/*-mac.yml --repo "$GITHUB_REPOSITORY" --clobber
|
||||
fi
|
||||
|
||||
- name: Verify release remains draft after artifact upload
|
||||
if: ${{ !inputs.qualification_only }}
|
||||
# Re-draft premature builder publication before failing; latest must not keep an incomplete Windows release.
|
||||
|
||||
Reference in New Issue
Block a user