ci(nightly): fix macOS/Windows packaging broken by fee[dB]ack rename

nightly.yml still globbed for the old Slopsmith.app bundle name and
failed every night. Find the .app dynamically (name-agnostic *.app glob
- the new name contains [dB], which a shell glob reads as a character
class) and derive zip names from the bundle, matching the fix already
on main in rc.yml/build.yml. Also refresh stale Slopsmith comments in
build.yml.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
OmikronApex
2026-07-03 17:33:46 +02:00
co-authored by Claude Fable 5
parent b5dce9af4d
commit 1df4c753d9
2 changed files with 15 additions and 11 deletions
+12 -8
View File
@@ -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'