Files
open-design/.github/scripts/release/assets/mac.sh
PerishFireandGitHub dcfab797c2 [codex] Add stable nightly promotion gate (#962)
* Upload beta e2e spec reports to R2

* Expose beta report URLs in summary

* Complete Indonesian deploy locale keys

* chore: factor release workflow scripts

* chore: bump packaged beta base version

* test: wait for mac packaged runtime health

* fix: capture mac packaged startup logs

* chore: improve mac release build observability

* fix: ad-hoc sign unsigned mac builds

* chore: diagnose mac packaged startup

* fix: relax unsigned mac launch signing

* chore: improve mac launch diagnostics

* chore: simplify beta mac release artifacts

* fix: align packaged mac smoke launch config

* fix: externalize mac daemon wasm dependency

* chore: require signed stable mac releases

* fix: use stable app version for nightly package builds

* chore: clean release artifacts after publish

* chore: publish beta reports as zip

* ci: disable beta mac tools-pack cache

* fix: skip mac framework binary symlinks when signing

* fix: sign mac framework version bundles

* ci: disable beta mac pnpm cache

* chore: align stable release reports

* ci: require matching nightly before stable release

* ci: avoid mac pnpm cache for packaged smoke
2026-05-08 21:48:54 +08:00

74 lines
2.3 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
for name in CLOUDFLARE_R2_RELEASES_PUBLIC_ORIGIN RELEASE_CHANNEL RELEASE_VERSION RUNNER_TEMP TOOLS_PACK_NAMESPACE; do
if [ -z "${!name:-}" ]; then
echo "$name is required" >&2
exit 1
fi
done
asset_suffix="${ASSET_VERSION_SUFFIX:-}"
mac_artifact_mode="${MAC_ARTIFACT_MODE:-dmg-and-zip}"
release_dir="$RUNNER_TEMP/release-assets"
mkdir -p "$release_dir"
case "$mac_artifact_mode" in
dmg-only | dmg-and-zip) ;;
*)
echo "unsupported MAC_ARTIFACT_MODE: $mac_artifact_mode" >&2
exit 1
;;
esac
source_dmg="$RUNNER_TEMP/tools-pack/out/mac/namespaces/$TOOLS_PACK_NAMESPACE/dmg/Open Design-$TOOLS_PACK_NAMESPACE.dmg"
source_zip="$RUNNER_TEMP/tools-pack/out/mac/namespaces/$TOOLS_PACK_NAMESPACE/zip/Open Design-$TOOLS_PACK_NAMESPACE.zip"
if [ ! -f "$source_dmg" ]; then
echo "expected dmg not found at $source_dmg" >&2
exit 1
fi
if [ "$mac_artifact_mode" != "dmg-only" ] && [ ! -f "$source_zip" ]; then
echo "expected zip not found at $source_zip" >&2
exit 1
fi
versioned_dmg="open-design-${RELEASE_VERSION}${asset_suffix}-mac-arm64.dmg"
versioned_zip="open-design-${RELEASE_VERSION}${asset_suffix}-mac-arm64.zip"
dmg_checksum_file="$versioned_dmg.sha256"
zip_checksum_file="$versioned_zip.sha256"
cp "$source_dmg" "$release_dir/$versioned_dmg"
(
cd "$release_dir"
shasum -a 256 "$versioned_dmg" > "$dmg_checksum_file"
)
if [ "$mac_artifact_mode" = "dmg-only" ]; then
exit 0
fi
cp "$source_zip" "$release_dir/$versioned_zip"
(
cd "$release_dir"
shasum -a 256 "$versioned_zip" > "$zip_checksum_file"
)
zip_sha512="$(openssl dgst -sha512 -binary "$release_dir/$versioned_zip" | openssl base64 -A)"
zip_size="$(stat -f%z "$release_dir/$versioned_zip")"
public_origin="${CLOUDFLARE_R2_RELEASES_PUBLIC_ORIGIN%/}"
version_prefix="${RELEASE_VERSION_PREFIX:-$RELEASE_CHANNEL/versions/$RELEASE_VERSION$asset_suffix}"
zip_url="$public_origin/$version_prefix/$versioned_zip"
release_date="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
release_notes="${RELEASE_NOTES:-Open Design $RELEASE_VERSION$asset_suffix}"
cat > "$release_dir/latest-mac.yml" <<EOF
version: "$RELEASE_VERSION"
files:
- url: "$zip_url"
sha512: "$zip_sha512"
size: $zip_size
path: "$zip_url"
sha512: "$zip_sha512"
releaseDate: "$release_date"
releaseNotes: "$release_notes"
EOF