mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
ci(release): re-sign updater tarball after tauri-action's repack
tauri-action always re-packs Psysonic.app into .app.tar.gz after tauri
CLI finishes (regardless of includeUpdaterJson), so the .sig that tauri
CLI produces never matches the final tarball — and the sig tauri-action
was supposed to produce silently goes missing ("Signature not found for
the updater JSON. Skipping upload...").
Rather than fight the repack, sign the repacked tarball ourselves in a
follow-up step using `tauri signer sign` against the same private key
(from TAURI_SIGNING_PRIVATE_KEY), then upload the fresh .sig. tauri-
action still handles the DMG + .app.tar.gz upload; we only add the .sig.
Also removes an unused `std::rc::Rc` import in the vendored cpal patch.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -130,17 +130,16 @@ 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 }}
|
||||||
# Disable tauri-action's own .app.tar.gz re-packaging + updater JSON
|
- name: re-sign updater bundle + upload .sig (macOS only)
|
||||||
# upload — its repack overwrites the .app.tar.gz produced by tauri
|
# tauri-action re-packs the .app into .app.tar.gz after tauri CLI is
|
||||||
# CLI and invalidates the matching .sig (the tauri-created signature
|
# done, which invalidates the .sig tauri CLI created (different hash).
|
||||||
# no longer matches the repacked tarball's hash, so tauri-action
|
# We can't stop the repack (it's tied to includeUpdaterJson), so we
|
||||||
# silently drops the .sig). We upload both files ourselves below,
|
# sign the final repacked .tar.gz ourselves and upload the fresh .sig.
|
||||||
# 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 }}
|
||||||
|
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
||||||
|
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
VERSION=${{ needs.create-release.outputs.package_version }}
|
VERSION=${{ needs.create-release.outputs.package_version }}
|
||||||
@@ -152,11 +151,15 @@ jobs:
|
|||||||
TARGET="x86_64-apple-darwin"
|
TARGET="x86_64-apple-darwin"
|
||||||
ARCH="x64"
|
ARCH="x64"
|
||||||
fi
|
fi
|
||||||
BUNDLE_DIR="src-tauri/target/${TARGET}/release/bundle/macos"
|
TARBALL="src-tauri/target/${TARGET}/release/bundle/macos/Psysonic.app.tar.gz"
|
||||||
cp "${BUNDLE_DIR}/Psysonic.app.tar.gz" "Psysonic_${ARCH}.app.tar.gz"
|
if [ ! -f "$TARBALL" ]; then
|
||||||
cp "${BUNDLE_DIR}/Psysonic.app.tar.gz.sig" "Psysonic_${ARCH}.app.tar.gz.sig"
|
echo "::error::Expected tarball missing: $TARBALL"
|
||||||
|
ls -la "$(dirname "$TARBALL")" || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
npx @tauri-apps/cli signer sign "$TARBALL"
|
||||||
|
cp "${TARBALL}.sig" "Psysonic_${ARCH}.app.tar.gz.sig"
|
||||||
gh release upload "app-v${VERSION}" \
|
gh release upload "app-v${VERSION}" \
|
||||||
"Psysonic_${ARCH}.app.tar.gz" \
|
|
||||||
"Psysonic_${ARCH}.app.tar.gz.sig" \
|
"Psysonic_${ARCH}.app.tar.gz.sig" \
|
||||||
--clobber
|
--clobber
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "psysonic",
|
"name": "psysonic",
|
||||||
"version": "1.34.18",
|
"version": "1.34.19",
|
||||||
"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.18"
|
version = "1.34.19"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"biquad",
|
"biquad",
|
||||||
"discord-rich-presence",
|
"discord-rich-presence",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "psysonic"
|
name = "psysonic"
|
||||||
version = "1.34.18"
|
version = "1.34.19"
|
||||||
description = "Psysonic Desktop Music Player"
|
description = "Psysonic Desktop Music Player"
|
||||||
authors = []
|
authors = []
|
||||||
license = ""
|
license = ""
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ use std::fmt;
|
|||||||
use std::mem;
|
use std::mem;
|
||||||
use std::os::raw::c_char;
|
use std::os::raw::c_char;
|
||||||
use std::ptr::null;
|
use std::ptr::null;
|
||||||
use std::rc::Rc;
|
|
||||||
use std::slice;
|
use std::slice;
|
||||||
use std::sync::mpsc::{channel, RecvTimeoutError};
|
use std::sync::mpsc::{channel, RecvTimeoutError};
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
|
|||||||
@@ -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.18",
|
"version": "1.34.19",
|
||||||
"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