Skip to content

Add run-local.sh, a .pkg build, and a Release workflow that publishes it - #3

Merged
Adron merged 1 commit into
mainfrom
build/pkg-release
Oct 24, 2026
Merged

Adron merged 1 commit into
mainfrom
build/pkg-release

Conversation

@Adron

@Adron Adron commented Oct 24, 2026

Copy link
Copy Markdown
Member

What

  • scripts/run-local.sh (make run-local): builds the app (Debug) and launches it against the production API by default, or a URL you pass (such as http://localhost:8080). It checks /health first and quits a running copy. The API choice applies to that run only.
  • scripts/build-pkg.sh (make pkg): Release archive → build/pkg/SubstratalHub-<version>.pkg plus a .sha256.
    • Installs to /Applications and isn't relocatable; requires macOS 15 or later; titled "Substratal Hub ".
    • With Developer ID identities, it signs the app (hardened runtime, timestamp) and the .pkg. With an App Store Connect key it also notarizes, staples and checks with spctl.
    • Without them: an ad-hoc signed app in an unsigned .pkg, for testing.
  • .github/workflows/release.yml: on a v* tag (or run by hand), builds the .pkg and publishes it and its checksum as GitHub Release assets.
    • Imports the Developer ID certificates into a temporary keychain when the secrets exist, and deletes the keychain afterwards.
    • Release notes come from CHANGELOG.md. Unsigned builds are marked pre-release, with a note on how to open them.
  • README, CHANGELOG and PREREQUISITES updated.

Verification

Done locally, because Actions jobs on this repo are blocked by the org's billing:

  • run-local.sh built and launched the app against https://api.substratalapps.com. A sign-in with a made-up account returned the API's "That email and password don't match", so the app reaches production with the Substratal-Version header.
  • build-pkg.sh (unsigned path) produced SubstratalHub-0.1.0.pkg (4.9 MB). Expanding it confirms:
    • install location /Applications, package ID com.substratalapps.hub.pkg, macOS 15.0 minimum
    • the app's version 0.1.0, bundle ID com.substratalapps.hub, and sandbox and network entitlements
    • hardened runtime is on
  • release.yml parses, and its release-notes extraction pulls the right CHANGELOG.md section.

Not yet exercised: the signed and notarized path (needs the Developer ID certificates and an App Store Connect key) and the workflow on GitHub (needs Actions billing).

🤖 Generated with Claude Code

- scripts/run-local.sh: generate the project if needed, check the API's
  /health, build Debug and launch against the production API (or a URL
  given, such as a local devserver) for this run only.
- scripts/build-pkg.sh: Release archive → component package installing to
  /Applications (not relocatable, macOS 15+) → SubstratalHub-<version>.pkg
  and a .sha256. Signs the app and the .pkg with Developer ID, and notarizes
  and staples, when the identities and an App Store Connect key are given;
  otherwise an ad-hoc signed app in an unsigned .pkg for testing.
- .github/workflows/release.yml: on a v* tag (or by hand), imports the
  Developer ID certificates if configured, builds the .pkg and publishes it
  with its checksum as a GitHub Release asset. Unsigned builds are marked
  pre-release.
- make run-local / make pkg; README, CHANGELOG and PREREQUISITES updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Adron
Adron merged commit 334998d into main Oct 24, 2026
0 of 3 checks passed
@Adron
Adron deleted the build/pkg-release branch October 24, 2026 04:24
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