Publish signed fork updates automatically after CI - #8
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
MonoCode Fork currently requires a manual rebuild to update. Successful CI runs on
mainnow build signed Apple Silicon and Intel packages and publish a complete GitHub release/update feed. Check for Updates shows the fork name, asks before installing and restarting, and directs unconfigured fork builds to fork releases.Why
Give the fork a repeatable in-app update path. Fork versions use
0.2.<CI run number>independently of upstream, with immutable package URLs, both architectures required before publication, and protection against older runs replacing newer releases. The inherited upstream publisher is restricted to the upstream repository. The updater signing secret is configured separately in GitHub; only its public key is committed.Existing
0.1.xinstallations need one initial replacement. macOS packages retain ad-hoc code signing; Apple notarization requires separate credentials. The runbook documents installation, signing, retries, and recovery.UI
No layout changes. Update dialogs use the app's name and explicitly mention restarting.
Validation
npm run check:web: 2,324 frontend tests and 5 release tests passed; TypeScript passed.npm run build: passed (existing bundle-size warnings).cargo fmt --check,actionlint, andgit diff --check: passed.npm run build:fork -- --ci: passed. Verified bundle identity/version, embedded updater endpoint/public key, macOS code signature, and updater signature; a tampered archive was rejected.Checklist
npm run checkequivalent passes in CI