mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-22 06:25:41 +00:00
ci(release): disable tauri-action updater repack, upload .sig ourselves
Root cause: tauri-action runs a second "Packaging" pass after tauri CLI finishes, which rewrites src-tauri/target/<target>/release/bundle/macos/ Psysonic.app.tar.gz with different bytes. The .sig produced by tauri CLI no longer matches the new hash, so tauri-action silently deletes it — leaving the directory with only .app and .app.tar.gz (no .sig for our manifest generator to consume). Fix: pass `includeUpdaterJson: false` to tauri-action so it skips the repack + updater JSON upload entirely, then copy both the .app.tar.gz and .app.tar.gz.sig produced by tauri CLI into the workspace root with the expected asset names and `gh release upload` them. Also disables build-linux and the Windows matrix entry during testing to cut iteration time roughly in half. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -83,8 +83,10 @@ jobs:
|
|||||||
args: '--target aarch64-apple-darwin'
|
args: '--target aarch64-apple-darwin'
|
||||||
- platform: 'macos-latest'
|
- platform: 'macos-latest'
|
||||||
args: '--target x86_64-apple-darwin'
|
args: '--target x86_64-apple-darwin'
|
||||||
- platform: 'windows-latest'
|
# TEMPORARILY DISABLED during macOS updater testing — faster turnaround.
|
||||||
args: '--bundles nsis'
|
# Re-add before the next public release.
|
||||||
|
# - platform: 'windows-latest'
|
||||||
|
# args: '--bundles nsis'
|
||||||
runs-on: ${{ matrix.settings.platform }}
|
runs-on: ${{ matrix.settings.platform }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
@@ -128,35 +130,35 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
releaseId: ${{ needs.create-release.outputs.release_id }}
|
releaseId: ${{ needs.create-release.outputs.release_id }}
|
||||||
args: ${{ matrix.settings.args }}
|
args: ${{ matrix.settings.args }}
|
||||||
- name: upload updater signature (macOS only)
|
# Disable tauri-action's own .app.tar.gz re-packaging + updater JSON
|
||||||
|
# upload — its repack overwrites the .app.tar.gz produced by tauri
|
||||||
|
# CLI and invalidates the matching .sig (the tauri-created signature
|
||||||
|
# no longer matches the repacked tarball's hash, so tauri-action
|
||||||
|
# silently drops the .sig). We upload both files ourselves below,
|
||||||
|
# and the generate-manifest job assembles latest.json.
|
||||||
|
includeUpdaterJson: false
|
||||||
|
- name: upload updater bundle + signature (macOS only)
|
||||||
if: runner.os == 'macOS'
|
if: runner.os == 'macOS'
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
set -x
|
set -e
|
||||||
VERSION=${{ needs.create-release.outputs.package_version }}
|
VERSION=${{ needs.create-release.outputs.package_version }}
|
||||||
TARGET_ARG='${{ matrix.settings.args }}'
|
TARGET_ARG='${{ matrix.settings.args }}'
|
||||||
if echo "$TARGET_ARG" | grep -q 'aarch64'; then
|
if echo "$TARGET_ARG" | grep -q 'aarch64'; then
|
||||||
TARGET="aarch64-apple-darwin"
|
TARGET="aarch64-apple-darwin"
|
||||||
DST="Psysonic_aarch64.app.tar.gz.sig"
|
ARCH="aarch64"
|
||||||
else
|
else
|
||||||
TARGET="x86_64-apple-darwin"
|
TARGET="x86_64-apple-darwin"
|
||||||
DST="Psysonic_x64.app.tar.gz.sig"
|
ARCH="x64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BUNDLE_DIR="src-tauri/target/${TARGET}/release/bundle/macos"
|
BUNDLE_DIR="src-tauri/target/${TARGET}/release/bundle/macos"
|
||||||
echo "=== Listing $BUNDLE_DIR ==="
|
cp "${BUNDLE_DIR}/Psysonic.app.tar.gz" "Psysonic_${ARCH}.app.tar.gz"
|
||||||
ls -la "$BUNDLE_DIR" || true
|
cp "${BUNDLE_DIR}/Psysonic.app.tar.gz.sig" "Psysonic_${ARCH}.app.tar.gz.sig"
|
||||||
echo "=== Searching whole target tree for .sig ==="
|
gh release upload "app-v${VERSION}" \
|
||||||
find "src-tauri/target" -name '*.sig' -type f 2>/dev/null || true
|
"Psysonic_${ARCH}.app.tar.gz" \
|
||||||
|
"Psysonic_${ARCH}.app.tar.gz.sig" \
|
||||||
SIG="${BUNDLE_DIR}/Psysonic.app.tar.gz.sig"
|
--clobber
|
||||||
if [ ! -f "$SIG" ]; then
|
|
||||||
echo "::error::Signature not at expected path: $SIG"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
cp "$SIG" "$DST"
|
|
||||||
gh release upload "app-v${VERSION}" "$DST" --clobber
|
|
||||||
|
|
||||||
generate-manifest:
|
generate-manifest:
|
||||||
needs: [create-release, build-macos-windows]
|
needs: [create-release, build-macos-windows]
|
||||||
@@ -178,6 +180,9 @@ jobs:
|
|||||||
gh release upload "app-v${VERSION}" latest.json --clobber
|
gh release upload "app-v${VERSION}" latest.json --clobber
|
||||||
|
|
||||||
build-linux:
|
build-linux:
|
||||||
|
# TEMPORARILY DISABLED during macOS updater testing — faster turnaround.
|
||||||
|
# Re-enable by removing `if: false` before the next public release.
|
||||||
|
if: false
|
||||||
needs: create-release
|
needs: create-release
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "psysonic",
|
"name": "psysonic",
|
||||||
"version": "1.34.17",
|
"version": "1.34.18",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
Generated
+1
-1
@@ -3653,7 +3653,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "psysonic"
|
name = "psysonic"
|
||||||
version = "1.34.17"
|
version = "1.34.18"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"biquad",
|
"biquad",
|
||||||
"discord-rich-presence",
|
"discord-rich-presence",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "psysonic"
|
name = "psysonic"
|
||||||
version = "1.34.17"
|
version = "1.34.18"
|
||||||
description = "Psysonic Desktop Music Player"
|
description = "Psysonic Desktop Music Player"
|
||||||
authors = []
|
authors = []
|
||||||
license = ""
|
license = ""
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "Psysonic",
|
"productName": "Psysonic",
|
||||||
"version": "1.34.17",
|
"version": "1.34.18",
|
||||||
"identifier": "dev.psysonic.player",
|
"identifier": "dev.psysonic.player",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "npm run dev",
|
"beforeDevCommand": "npm run dev",
|
||||||
|
|||||||
Reference in New Issue
Block a user