From 9faf97acbd427d6ccb4f8e9716160eb9d7988e84 Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Fri, 22 May 2026 02:22:19 +0300 Subject: [PATCH] ci: handle Electron app artifact shape Wraps downloaded Contents folder back into OpenChamber.app Unblocks Tauri-to-Electron migration repackage job Documents GitHub artifact behavior --- .github/workflows/release.yml | 11 ++++++++--- docs/TAURI_TO_ELECTRON_CUTOVER.md | 5 +++++ 2 files changed, 13 insertions(+), 3 deletions(-) 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`.