diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2e545e0..b17563d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -177,14 +177,14 @@ jobs: # Tester builds (non-tag only): macOS is packaged for distribution by the # Velopack steps below, which run ONLY on tag pushes. On a plain push to # main or a manual workflow_dispatch, electron-builder's "dir" target - # leaves an unpackaged release/mac-*/Slopsmith.app that the artifact + # leaves an unpackaged release/mac-*/.app that the artifact # upload globs (AppImage/deb/exe/velopack) don't match — so testers got # no macOS build. Zip the .app with ditto (preserves the bundle's # internal symlinks + any signature/xattrs) so a tester-ready macOS # archive ships from ordinary CI runs without cutting a release tag. # Skipped on tags so it never races or duplicates the Velopack output. # The archive is unsigned/un-notarized — testers clear Gatekeeper with - # xattr -dr com.apple.quarantine Slopsmith.app + # xattr -dr com.apple.quarantine "fee[dB]ack.app" - name: Zip macOS app for tester distribution (non-tag) if: matrix.platform == 'mac' && !startsWith(github.ref, 'refs/tags/v') shell: bash @@ -382,7 +382,7 @@ jobs: # path ending in .app as a prebuilt bundle. A non-.app folder # would instead trigger auto-bundle mode (which also needs # --icon). electron-builder's "dir" target writes the bundle to - # release/mac-arm64/Slopsmith.app on the arm64 runner. + # release/mac-arm64/.app on the arm64 runner. - name: Velopack pack (macOS) if: matrix.platform == 'mac' && steps.velopack_channel.outputs.channel != '' shell: bash diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 82c28cc..9b2e20d 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -67,7 +67,7 @@ jobs: # macOS: import signing cert so build-macos.sh can codesign the .app. # The nightly .app is signed but not notarized — testers clear Gatekeeper with - # xattr -dr com.apple.quarantine Slopsmith.app + # xattr -dr com.apple.quarantine "fee[dB]ack.app" # Same graceful fallback as release.yml: no-op when secrets are absent. - name: Import Apple signing certificate if: matrix.platform == 'mac' @@ -118,23 +118,27 @@ jobs: shell: bash run: | set -euo pipefail - app=$(ls -d release/mac*/Slopsmith.app 2>/dev/null | head -n1 || true) + # The .app bundle is named after productName (e.g. fee[dB]ack.app), + # not the old "Slopsmith" name — find it dynamically so a rebrand + # can't break the tester zip. + app=$(ls -d release/mac*/*.app 2>/dev/null | head -n1 || true) if [[ -z "${app:-}" || ! -d "$app" ]]; then - echo "::error::No Slopsmith.app found under release/mac*/" + echo "::error::No .app bundle found under release/mac*/" exit 1 fi - ditto -c -k --sequesterRsrc --keepParent "$app" "release/Slopsmith-macos-arm64.zip" - echo "Zipped $app -> release/Slopsmith-macos-arm64.zip" + name=$(basename "$app" .app) + ditto -c -k --sequesterRsrc --keepParent "$app" "release/${name}-macos-arm64.zip" + echo "Zipped $app -> release/${name}-macos-arm64.zip" # Windows: electron-builder's `dir` target leaves win-unpacked/ with no # packaged installer (Velopack is skipped for nightlies). Zip the directory - # so testers can download and extract, then launch Slopsmith.exe directly. + # so testers can download and extract, then launch the app .exe directly. - name: Zip win-unpacked if: matrix.platform == 'win' shell: pwsh run: | - Compress-Archive -Path release\win-unpacked\* -DestinationPath release\Slopsmith-windows-x64.zip - Write-Host "Zipped win-unpacked -> release\Slopsmith-windows-x64.zip" + Compress-Archive -Path release\win-unpacked\* -DestinationPath release\feedback-windows-x64.zip + Write-Host "Zipped win-unpacked -> release\feedback-windows-x64.zip" - name: Clean up signing keychain if: always() && matrix.platform == 'mac'