Package macOS desktop releases as DMGs (#82)
All checks were successful
Tagged release / prepare-release (push) Successful in 5s
Tagged release / build-unix (push) Successful in 1h7m44s
Tagged release / build-windows (push) Successful in 17m33s
Tagged release / publish-release (push) Successful in 3s

This commit is contained in:
2026-08-13 21:28:53 +02:00
parent 189ae7721e
commit fcf649e56d
5 changed files with 1459 additions and 36 deletions

View File

@@ -53,6 +53,7 @@ jobs:
- name: Build, package, and upload Unix releases
env:
CARGO_TARGET_X86_64_APPLE_DARWIN_RUSTFLAGS: -C link-arg=-Wl,-headerpad,0x1000
GITEA_API_URL: ${{ gitea.server_url }}/api/v1
GITEA_REF_NAME: ${{ gitea.ref_name }}
GITEA_REPOSITORY: ${{ gitea.repository }}
@@ -62,9 +63,10 @@ jobs:
set -eu
version=$(printf '%s' "$GITEA_REF_NAME" | sed 's/[^A-Za-z0-9._-]/-/g')
for build in \
'aarch64-apple-darwin|aarch64-apple-darwin|darwin-arm64' \
'x86_64-apple-darwin|x86_64-apple-darwin|darwin-x64' \
'aarch64-unknown-linux-gnu|aarch64-unknown-linux-gnu.2.28|linux-arm64' \
'x86_64-unknown-linux-gnu|x86_64-unknown-linux-gnu.2.28|linux-x64' \
'aarch64-apple-darwin|aarch64-apple-darwin|darwin-arm64'
'x86_64-unknown-linux-gnu|x86_64-unknown-linux-gnu.2.28|linux-x64'
do
target=${build%%|*}
rest=${build#*|}
@@ -77,17 +79,31 @@ jobs:
cli="ironstorage-cli-${version}-${platform}"
desktop="ironstorage-desktop-${version}-${platform}"
mkdir -p "dist/$cli" "dist/$desktop"
mkdir -p "dist/$cli"
cp "target/$target/release/ironstorage" "dist/$cli/"
cp "target/$target/release/ironstorage-tui" "dist/$cli/"
cp "target/$target/release/ironstorage" "dist/$desktop/"
cp "target/$target/release/ironstorage-tui" "dist/$desktop/"
cp "target/$target/release/ironstorage-desktop" "dist/$desktop/"
tar -C dist -czf "dist/${cli}.tar.gz" "$cli"
tar -C dist -czf "dist/${desktop}.tar.gz" "$desktop"
rm -r "dist/$cli" "dist/$desktop"
rm -r "dist/$cli"
for asset in "dist/${cli}.tar.gz" "dist/${desktop}.tar.gz"; do
case "$platform" in
darwin-*)
desktop_asset="dist/${desktop}.dmg"
cargo run --release --locked --package ironstorage-macos-packager -- \
"$GITEA_REF_NAME" "target/$target/release" \
assets/icon-candidates/vault-classic@2x.png "$desktop_asset"
;;
*)
desktop_asset="dist/${desktop}.tar.gz"
mkdir -p "dist/$desktop"
cp "target/$target/release/ironstorage" "dist/$desktop/"
cp "target/$target/release/ironstorage-tui" "dist/$desktop/"
cp "target/$target/release/ironstorage-desktop" "dist/$desktop/"
tar -C dist -czf "$desktop_asset" "$desktop"
rm -r "dist/$desktop"
;;
esac
for asset in "dist/${cli}.tar.gz" "$desktop_asset"; do
name=$(basename "$asset")
curl --fail --silent --show-error --retry 3 \
-H "Authorization: token $GITEA_TOKEN" \