chore: import upstream snapshot with attribution
CI / lint (push) Has been cancelled
CI / js-syntax (push) Successful in 10m24s
CI / deps-audit (push) Has been cancelled
CI / test (push) Failing after 24m55s
CI / sast-bandit (push) Failing after 11m13s
CI / trivy (push) Failing after 9m32s
Docker Publish / build-and-push (push) Failing after 34m3s
CI / lint (push) Has been cancelled
CI / js-syntax (push) Successful in 10m24s
CI / deps-audit (push) Has been cancelled
CI / test (push) Failing after 24m55s
CI / sast-bandit (push) Failing after 11m13s
CI / trivy (push) Failing after 9m32s
Docker Publish / build-and-push (push) Failing after 34m3s
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
name: macOS Release
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
permissions: {}
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build-and-upload:
|
||||
# Runner must be darwin/arm64 with Rosetta 2, Xcode CLT, Homebrew, rustup, and zstd.
|
||||
runs-on: [self-hosted, macOS, ARM64]
|
||||
timeout-minutes: 120
|
||||
permissions:
|
||||
contents: write
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
steps:
|
||||
- name: clean workspace
|
||||
run: rm -rf .build dist
|
||||
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
|
||||
- name: write version files
|
||||
env:
|
||||
# github.ref_name (evaluated by Actions) instead of $GITHUB_REF_NAME,
|
||||
# which is only injected by runner >= 2.290 — empty on older
|
||||
# self-hosted runners.
|
||||
REF_NAME: ${{ github.ref_name }}
|
||||
run: |
|
||||
if [ -z "${REF_NAME:-}" ]; then
|
||||
echo "REF_NAME is not set" >&2
|
||||
exit 1
|
||||
fi
|
||||
VERSION="${REF_NAME#v}"
|
||||
printf '{ "version": "%s" }\n' "$VERSION" > static/version.json
|
||||
sed -i '' "s/^version = \".*\"/version = \"$VERSION\"/" desktop/src-tauri/Cargo.toml
|
||||
sed -i '' "s/\"version\": \"[^\"]*\"/\"version\": \"$VERSION\"/" desktop/src-tauri/tauri.conf.json
|
||||
sed -i '' "s/^version = \".*\"/version = \"$VERSION\"/" pyproject.toml
|
||||
sed -i '' "s/\"version\": \"[^\"]*\"/\"version\": \"$VERSION\"/" desktop/package.json
|
||||
echo "VERSION=$VERSION" >> "$GITHUB_ENV"
|
||||
echo "Wrote version $VERSION to all version files"
|
||||
|
||||
- name: build macOS arm64
|
||||
env:
|
||||
SSL_CERT_FILE: /etc/ssl/cert.pem
|
||||
REQUESTS_CA_BUNDLE: /etc/ssl/cert.pem
|
||||
run: |
|
||||
command -v zstd
|
||||
command -v uv >/dev/null 2>&1 || brew install uv
|
||||
uv python install cpython-3.12-macos-aarch64-none
|
||||
ARM64_PYTHON="$(uv python find cpython-3.12-macos-aarch64-none)"
|
||||
scripts/macos/make-iconset.sh
|
||||
ARCH=arm64 VERSION="$VERSION" PYTHON_BIN="$ARM64_PYTHON" scripts/macos/make-runtime-pack.sh
|
||||
ARCH=arm64 VERSION="$VERSION" scripts/macos/make-app.sh
|
||||
ARCH=arm64 VERSION="$VERSION" scripts/macos/make-dmg.sh
|
||||
|
||||
- name: build macOS x64
|
||||
env:
|
||||
SSL_CERT_FILE: /etc/ssl/cert.pem
|
||||
REQUESTS_CA_BUNDLE: /etc/ssl/cert.pem
|
||||
run: |
|
||||
command -v zstd
|
||||
if ! arch -x86_64 /usr/bin/true >/dev/null 2>&1; then
|
||||
echo "ERROR: Rosetta 2 is required to build the x64 runtime on this agent." >&2
|
||||
exit 1
|
||||
fi
|
||||
rustup default stable
|
||||
rustup target add x86_64-apple-darwin
|
||||
command -v uv >/dev/null 2>&1 || brew install uv
|
||||
uv python install cpython-3.12-macos-x86_64-none
|
||||
X64_PYTHON="$(uv python find cpython-3.12-macos-x86_64-none)"
|
||||
ARCH=x64 VERSION="$VERSION" PYTHON_BIN="$X64_PYTHON" scripts/macos/make-runtime-pack.sh
|
||||
ARCH=x64 VERSION="$VERSION" scripts/macos/make-app.sh
|
||||
ARCH=x64 VERSION="$VERSION" scripts/macos/make-dmg.sh
|
||||
|
||||
- name: inspect artifacts
|
||||
run: |
|
||||
test -f .build/macos-dist/StemDeck-macOS-arm64.dmg
|
||||
test -f .build/StemDeck-runtime-macOS-arm64.tar.zst
|
||||
test -f .build/macos-dist/SHA256SUMS-macOS-arm64.txt
|
||||
test -f .build/macos-dist/StemDeck-macOS-x64.dmg
|
||||
test -f .build/StemDeck-runtime-macOS-x64.tar.zst
|
||||
test -f .build/macos-dist/SHA256SUMS-macOS-x64.txt
|
||||
cat .build/macos-dist/SHA256SUMS-macOS-arm64.txt
|
||||
cat .build/macos-dist/SHA256SUMS-macOS-x64.txt
|
||||
du -sh .build/macos-dist/StemDeck-macOS-arm64.dmg .build/StemDeck-runtime-macOS-arm64.tar.zst
|
||||
du -sh .build/macos-dist/StemDeck-macOS-x64.dmg .build/StemDeck-runtime-macOS-x64.tar.zst
|
||||
if find desktop/src-tauri/target/aarch64-apple-darwin/release/bundle/macos/StemDeck.app \
|
||||
\( -iname '*python*' -o -iname '*torch*' -o -iname '*ffmpeg*' -o -iname '*ffprobe*' \) |
|
||||
grep -q .; then
|
||||
echo "arm64 StemDeck.app contains runtime binaries that should stay outside the DMG." >&2
|
||||
exit 1
|
||||
fi
|
||||
if find desktop/src-tauri/target/x86_64-apple-darwin/release/bundle/macos/StemDeck.app \
|
||||
\( -iname '*python*' -o -iname '*torch*' -o -iname '*ffmpeg*' -o -iname '*ffprobe*' \) |
|
||||
grep -q .; then
|
||||
echo "x64 StemDeck.app contains runtime binaries that should stay outside the DMG." >&2
|
||||
exit 1
|
||||
fi
|
||||
for arch in arm64 x64; do
|
||||
mountpoint="$(mktemp -d /tmp/stemdeck-dmg.XXXXXX)"
|
||||
hdiutil attach ".build/macos-dist/StemDeck-macOS-$arch.dmg" -readonly -nobrowse -mountpoint "$mountpoint"
|
||||
trap 'hdiutil detach "$mountpoint" >/dev/null 2>&1 || true; rmdir "$mountpoint" >/dev/null 2>&1 || true' EXIT
|
||||
test -d "$mountpoint/StemDeck.app"
|
||||
test -L "$mountpoint/Applications"
|
||||
test -f "$mountpoint/README-macOS.txt"
|
||||
test -f "$mountpoint/THIRD_PARTY_NOTICES.txt"
|
||||
hdiutil detach "$mountpoint"
|
||||
rmdir "$mountpoint"
|
||||
trap - EXIT
|
||||
done
|
||||
|
||||
- name: upload artifacts
|
||||
uses: softprops/action-gh-release@718ea10b132b3b2eba29c1007bb80653f286566b # v3.0.1
|
||||
with:
|
||||
files: |
|
||||
.build/macos-dist/StemDeck-macOS-arm64.dmg
|
||||
.build/StemDeck-runtime-macOS-arm64.tar.zst
|
||||
.build/macos-dist/SHA256SUMS-macOS-arm64.txt
|
||||
.build/macos-dist/StemDeck-macOS-x64.dmg
|
||||
.build/StemDeck-runtime-macOS-x64.tar.zst
|
||||
.build/macos-dist/SHA256SUMS-macOS-x64.txt
|
||||
Reference in New Issue
Block a user