Repository navigation
Attach the engine for Intel Macs to each release - #54
Merged
Merged
Conversation
The release gets a fifth engine file, sayso-engine-<version>-macos-x86_64.tar.gz. scripts/build-engine-x86_64.sh cross-compiles the Swift engine, strips it, signs it like the engine of the app, and notarizes it. scripts/package-engine.sh now reads the architecture of a macOS engine with lipo, so an arm64 engine can never get the x86_64 name. The notarize function moves to scripts/notarize-lib.sh so both scripts use it. The engine check runs on macos-15-intel, the manifest job needs the new file, and CI has a manual job for it. Sayso itself stays Apple silicon only.
Owner
Author
|
Manual CI run on da93b03: success for all jobs, including Engine file, macOS x86_64 (manual) and Engine file check / macos-x86_64 (runner macos-15-intel). https://github.com/watzon/sayso/actions/runs/40581523637 |
Merged
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
Each release now has a fifth engine file:
sayso-engine-<version>-macos-x86_64.tar.gz, with its.sha256. It is the same Swift engine, built for Intel Macs. Sayso itself still runs on Apple silicon only.scripts/build-engine-x86_64.shis new. It cross-compiles the engine (swift build --arch x86_64), strips it, signs it like the engine of the app (same identity, identifierdev.sayso.Sayso.engine, entitlements, hardened runtime, timestamp), and notarizes it.SAYSO_SIGN_IDENTITY=-signs ad hoc and skips notarization, for CI and local tests.scripts/notarize-lib.shis new. It holds thenotarizefunction that was inscripts/release.sh, moved without a change. Both scripts use it.scripts/package-engine.shreads the architecture of a macOS engine withlipoand puts it in the file name. It stops for a universal binary. On Linux it checks the ELF machine code against the machine. The README text has an Intel note.release.yml: the macOS job builds, signs, and notarizes the Intel engine, packs it with--require-signed, attaches it, and keeps it as the artifactrelease-engine-macos-x86_64. Themanifestjob needs the new file.engine-check.yml: new platformmacos-x86_64on the runnermacos-15-intel. All macOS jobs now check that the architecture of the engine matches the file name and the runner.ci.yml: new manual job "Engine file, macOS x86_64 (manual)". It builds the engine with an ad hoc signature and feedsengine-check.docs/releasing.md,docs/extensions.md,CONTEXT.md,crates/sayso-engine-sdk/README.md.find_engineneeds no change.A bare executable cannot have a stapled ticket. macOS looks the notarization ticket up online. The script and the docs say so.
How it was checked
shellcheckon the changed scripts andactionlinton the workflows: no new findings.SAYSO_SIGN_IDENTITY=- scripts/build-engine-x86_64.sh, packed it withscripts/package-engine.sh, unpacked it, and ran the core level of the conformance suite under Rosetta: 17 checks, 0 failed.lipo -archssaysx86_64.macos-arm64. Packed a universal binary: the script stops with an error.What is not checked