Skip to content

Publish unsigned macOS artifacts#266

Merged
forketyfork merged 3 commits intomainfrom
ci/unsigned-macos-release-artifacts
Mar 11, 2026
Merged

Publish unsigned macOS artifacts#266
forketyfork merged 3 commits intomainfrom
ci/unsigned-macos-release-artifacts

Conversation

@forketyfork
Copy link
Owner

Solution

Architect's release job was still wired for certificate-based signing even though we do not want to publish signed macOS downloads from this repo right now. That left the workflow, the asset names, and the installation docs pointing in different directions.

This PR removes signing from the GitHub release path and makes the published tarballs explicitly unsigned. The bundle script now supports --unsigned and strips any embedded ad-hoc signatures from the copied executable and bundled dylibs, so the release bundle is actually unsigned instead of inheriting whatever the local toolchain produced.

The README and release docs now point at the -unsigned asset names and spell out the quarantine step users need before launching the app.

Issue linkage will be added during mandatory cleanup.

Test plan

  • Run the Release workflow via workflow_dispatch and confirm the uploaded artifacts are named architect-macos-arm64-unsigned.tar.gz and architect-macos-x86_64-unsigned.tar.gz.
  • Download one macOS artifact, run codesign -dv Architect.app to confirm it reports the app is not signed, then clear quarantine with xattr -dr com.apple.quarantine Architect.app and confirm the app launches.

Issue: Architect's GitHub release workflow still produced signed macOS artifacts even though the project should stop publishing signed downloads and document an unsigned distribution path.
Solution: Removed certificate import and release signing from the GitHub Actions release job, and renamed the published tarballs so the unsigned status is obvious. Added an unsigned bundling mode that strips inherited signatures from the packaged app and bundled dylibs, then updated the installation and release docs to match the new workflow and quarantine requirements.
@forketyfork forketyfork requested a review from Copilot March 11, 2026 14:14
@forketyfork forketyfork marked this pull request as ready for review March 11, 2026 14:15
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the macOS release pipeline to publish explicitly unsigned app bundles, aligning the bundling script, GitHub Actions release workflow, and installation/release documentation around *-unsigned assets.

Changes:

  • Add --unsigned support to scripts/bundle-macos.sh, including stripping any embedded signatures from the bundled executable and dylibs.
  • Remove macOS certificate import + signing logic from the GitHub Actions release workflow and publish *-unsigned.tar.gz artifacts.
  • Update README and development release docs to reference *-unsigned assets and document clearing the quarantine attribute.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
scripts/bundle-macos.sh Adds flag parsing for --unsigned and signature-stripping logic for macOS bundles.
.github/workflows/release.yaml Removes signing steps and publishes architect-macos-<arch>-unsigned.tar.gz assets.
README.md Updates installation instructions to download *-unsigned artifacts and adds a quarantine-clearing note.
docs/development.md Updates release documentation to reflect unsigned artifacts and manual validation guidance.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Issue: A PR review comment pointed out that bundle-macos.sh could leave stale code-signing metadata or leftover files behind when rebuilding into the same output directory, especially in --unsigned mode.
Solution: Recreate the Architect.app bundle from a clean path before copying files into it. That removes leftover _CodeSignature and CodeResources metadata along with any stale dylibs or resources, keeping repeated bundle runs deterministic and aligned with the unsigned release workflow.
@forketyfork forketyfork merged commit 1c3aab1 into main Mar 11, 2026
4 checks passed
@forketyfork forketyfork deleted the ci/unsigned-macos-release-artifacts branch March 11, 2026 14:50
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.

2 participants