name: Build MusicBridge compatible iloader on: workflow_dispatch: permissions: contents: read jobs: windows: runs-on: windows-latest timeout-minutes: 60 steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: actions/checkout@v4 with: repository: nab138/iloader ref: 348eefd7de78e9bc612c9d619b8b1e7a80ba3ba0 path: build/compat/iloader persist-credentials: false - uses: actions/checkout@v4 with: repository: nab138/isideload ref: f6a4d5dba717d72fc2af63eaba26b27ba44116be path: build/compat/isideload persist-credentials: false - uses: actions/checkout@v4 with: repository: nab138/apple-crates ref: 5da0b8df9b202434b1eff2700059b1ee142592ac path: build/compat/apple-crates persist-credentials: false - uses: dtolnay/rust-toolchain@stable - uses: ilammy/msvc-dev-cmd@v1 - uses: oven-sh/setup-bun@v2 - name: Patch pinned sources run: python tools/iloader/prepare.py build/compat - name: Install frontend dependencies working-directory: build/compat/iloader run: bun install --frozen-lockfile - name: Test extension discovery, bundle IDs and signing permissions working-directory: build/compat/iloader/src-tauri run: | cargo test -p isideload --lib musicbridge if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } cargo test -p apple-codesign --lib musicbridge if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - name: Build portable GUI working-directory: build/compat/iloader run: bunx tauri build --no-bundle --config src-tauri/ci.conf.json - name: Package helper with provenance run: | New-Item -ItemType Directory -Force build/iloader-musicbridge Copy-Item build/compat/iloader/src-tauri/target/release/iloader.exe build/iloader-musicbridge/iloader-musicbridge.exe Copy-Item tools/iloader/README.md build/iloader-musicbridge/README.md Get-ChildItem build/compat/iloader -Filter 'LICENSE*' | Copy-Item -Destination build/iloader-musicbridge Get-FileHash build/iloader-musicbridge/iloader-musicbridge.exe | Format-List | Out-File build/iloader-musicbridge/SHA256.txt - uses: actions/upload-artifact@v4 with: name: iloader-musicbridge-windows path: build/iloader-musicbridge if-no-files-found: error retention-days: 7