diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b7b8cd4..22b1123b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -305,9 +305,14 @@ jobs: set -euo pipefail if [ ! -d staged/OpenChamber.app ]; then - echo "Error: staged/OpenChamber.app not found" - ls -la staged - exit 1 + if [ -d staged/Contents ]; then + mkdir -p staged/OpenChamber.app + mv staged/Contents staged/OpenChamber.app/Contents + else + echo "Error: staged/OpenChamber.app not found" + ls -la staged + exit 1 + fi fi cd staged diff --git a/docs/TAURI_TO_ELECTRON_CUTOVER.md b/docs/TAURI_TO_ELECTRON_CUTOVER.md index 3dbbff13..6d3a2134 100644 --- a/docs/TAURI_TO_ELECTRON_CUTOVER.md +++ b/docs/TAURI_TO_ELECTRON_CUTOVER.md @@ -114,6 +114,11 @@ only verifies the signature and extracts the bundle over the existing `/Applications/OpenChamber.app`. After restart, the app is Electron and future updates use `latest-mac.yml` through `electron-updater`. +Note: `actions/upload-artifact` can download a `.app` directory artifact as its +inner `Contents/` folder instead of `OpenChamber.app/Contents`. The repackage +job handles both shapes and wraps `Contents/` back into `OpenChamber.app` before +creating the tarball. + ## Historical release workflow changes The file edited for the cutover was `.github/workflows/release.yml`.