7070 # Keep one artifact per OS to stay under the repo's tight artifact quota.
7171 # macOS arm64 only - Apple Silicon covers current Macs. The Intel (macos-13)
7272 # runner is queue-starved and the x64 cross-compile is unreliable, so it is dropped.
73- mac='{"host":"macos-14","target":"darwin-arm64","platform_flag":"--mac dmg --arm64","group":"mac"}'
73+ mac='{"host":"macos-14","target":"darwin-arm64","platform_flag":"--mac dmg zip --arm64","group":"mac"}'
7474 linux='{"host":"ubuntu-24.04","target":"linux-amd64","platform_flag":"--linux deb --x64","group":"linux"}'
7575 win='{"host":"windows-2025","target":"win-x64","platform_flag":"--win nsis --x64","group":"win"}'
7676 case "$PLATFORMS" in
@@ -154,7 +154,10 @@ jobs:
154154 compression-level : 9
155155 retention-days : 1
156156 path : |
157+ packages/desktop/dist/latest*.yml
158+ packages/desktop/dist/*.blockmap
157159 packages/desktop/dist/*.dmg
160+ packages/desktop/dist/*.zip
158161 packages/desktop/dist/*.deb
159162 packages/desktop/dist/*.exe
160163
@@ -181,11 +184,17 @@ jobs:
181184 version=$(node -p 'require("./packages/desktop/package.json").version.replace(/-.*/, "")')
182185 tag="app-v${version}-main.${GITHUB_RUN_NUMBER}"
183186
184- mapfile -t assets < <(find release-assets -type f \( -name '*. dmg' -o -name '*.deb' -o -name '*.exe' \) | sort)
187+ mapfile -t assets < <(find release-assets -type f \( -name 'latest*.yml' -o -name '*.blockmap' -o -name '*. dmg' -o -name '*.zip ' -o -name '*.deb' -o -name '*.exe' \) | sort)
185188 if [ "${#assets[@]}" -eq 0 ]; then
186189 echo "No desktop release assets found"
187190 exit 1
188191 fi
192+ for required in latest.yml latest-mac.yml; do
193+ if ! find release-assets -type f -name "$required" | grep -q .; then
194+ echo "Missing updater metadata: $required"
195+ exit 1
196+ fi
197+ done
189198
190199 gh release list --repo "$REPOSITORY" --limit 100 --json tagName \
191200 --jq '.[] | select(.tagName | test("^app-v[0-9]+\\.[0-9]+\\.[0-9]+-main\\.")) | .tagName' \
0 commit comments