Skip to content

fix(updater): sig upload glob + recursive find (latest.json platforms)#192

Merged
ajianaz merged 2 commits into
developfrom
fix/updater-sig-glob
Jul 21, 2026
Merged

fix(updater): sig upload glob + recursive find (latest.json platforms)#192
ajianaz merged 2 commits into
developfrom
fix/updater-sig-glob

Conversation

@ajianaz

@ajianaz ajianaz commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Fixes the v0.3.3 auto-update manifest having empty platforms: {}.

Root cause (2 issues, both in the release pipeline — no app code):

  1. Upload glob src-tauri/target*/release/bundle/...* does not cross / in actions/upload-artifact@v4, so the macOS cross-compile path target/<triple>/release/bundle/macos/*.sig was never matched → no .sig uploaded → manifest job got empty artifacts → platforms: {}. Fix: src-tauri/target/**/bundle/... (** crosses dirs; matches both triple-path macOS + plain-path Windows).
  2. Nested artifact path — upload-artifact v4 may preserve directory structure, so the .sig can be nested under updater-<key>/. The script now finds it recursively (findSig).

Also: build-updater-manifest.ts now exits non-zero if no platforms assemble (fail loud instead of shipping an empty manifest).

Verified locally: YAML parses; script transpiles; recursive find tested against a nested .sig (found). End-to-end needs a release cut to confirm latest.json ships with populated platforms.

Note: the live v0.3.3 release still has the broken (empty-platforms) latest.json; fixing it needs a re-cut or a new release — not done here, awaiting confirmation (per workflow rules: no release/main action without explicit go).

ajianaz added 2 commits July 21, 2026 13:52
…ile path)

The previous upload-step glob `src-tauri/target*/release/bundle/...` didn't
match the macOS cross-compile path `target/<triple>/release/bundle/...` —
`*` doesn't cross directory separators, so no `.sig` was uploaded, the
manifest job got empty artifacts, and `latest.json` shipped with
`platforms: {}` → updater error 'None of the fallback platforms were found'.

Switch to `target/**/bundle/...` (`**` crosses dirs) so both the cross-
compile path (macOS aarch64/x86_64) and the plain path (windows nsis) match.

Also: build-updater-manifest.ts now exits non-zero if no platforms were
assembled, so an empty manifest fails the workflow loudly instead of
silently shipping a broken one.
actions/upload-artifact@v4 may preserve directory structure inside the
artifact, so the .sig can land nested (not at the updater-<key>/ root).
findSig() now walks recursively so the manifest job finds it regardless.

Pairs with the glob fix (target/**/bundle) in the prior commit.
@github-actions

Copy link
Copy Markdown

🔍 Cora AI Code Review

No issues found. Code looks good!


Review powered by cora-cli · BYOK · MIT

@ajianaz
ajianaz merged commit 9f9005a into develop Jul 21, 2026
8 checks passed
This was referenced Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant