Skip to content

Commit 3aea642

Browse files
alicodingclaude
andcommitted
fix: releases ship a launchable Mill.app zip, not the raw binary
v0.1.0's asset was task build's raw binary -- not double-clickable (owner hit Finder's no-application dialog on the real download), and browsers strip the exec bit anyway. Release builds now run task package and ship bin/mill.app zipped via ditto (bundle metadata preserved); attestation and checksums cover the zip. Release notes gain install instructions (drag to Applications, right-click-Open first launch for the ad-hoc signature, attestation verify command) with build-from-source as the alternative, not the requirement. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FJ8wStsHyu7XPLTspNjMnQ
1 parent 01f34a7 commit 3aea642

1 file changed

Lines changed: 16 additions & 5 deletions

File tree

.github/workflows/release.yml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,20 +78,25 @@ jobs:
7878
# extract bindings and never exits on a headless runner (first live
7979
# run of this workflow hung 63 minutes exactly there); the repo
8080
# commits frontend/bindings, so a release build uses them as-is.
81-
- run: task build
81+
# task package (not task build): the raw binary is not a
82+
# launchable macOS artifact -- v0.1.0 shipped it and double-click
83+
# hit Finder's "no application set to open" dialog. The .app
84+
# bundle zipped with ditto (preserves bundle metadata/resource
85+
# forks the way plain zip may not) is what a person downloads.
86+
- run: task package
8287
env:
8388
MILL_SKIP_BINDINGS: "1"
84-
- name: Rename binary with platform/arch/version suffix
89+
- name: Zip app bundle with platform/arch/version suffix
8590
run: |
8691
VERSION="${GITHUB_REF_NAME#v}"
87-
mv bin/mill "bin/mill-${VERSION}-macos-$(uname -m)"
92+
ditto -c -k --keepParent bin/mill.app "bin/mill-${VERSION}-macos-$(uname -m).zip"
8893
- uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
8994
with:
90-
subject-path: bin/mill-*
95+
subject-path: bin/mill-*.zip
9196
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
9297
with:
9398
name: mill-macos
94-
path: bin/mill-*
99+
path: bin/mill-*.zip
95100
retention-days: 7
96101

97102
release:
@@ -111,9 +116,15 @@ jobs:
111116
- name: Create GitHub release
112117
env:
113118
GH_TOKEN: ${{ github.token }}
119+
# --notes text is prepended to the generated notes; the app is
120+
# ad-hoc signed (no Apple Developer ID), so first launch needs
121+
# the standard right-click -> Open confirmation.
114122
run: |
115123
gh release create "${GITHUB_REF_NAME}" \
116124
--repo "${GITHUB_REPOSITORY}" \
117125
--title "${GITHUB_REF_NAME}" \
118126
--generate-notes \
127+
--notes "## Install
128+
129+
Download the \`.zip\`, unzip, and drag \`mill.app\` to Applications — no build needed. First launch: **right-click the app → Open → Open** (it is ad-hoc signed, not notarized — macOS asks once). Verify the download came from this repo's CI: \`gh attestation verify <the .zip> -R ${GITHUB_REPOSITORY}\`. Prefer building from source? \`git clone\` + the README's few commands work on any Mac." \
119130
dist/*

0 commit comments

Comments
 (0)