🏗️ Build and Test JellyTau / Run Tests (push) Successful in 15m32s
🏗️ Build and Test JellyTau / Supply Chain (push) Failing after 29s
Publish Documentation / Build & publish docs to gitea-pages (push) Successful in 5m34s
Traceability Validation / Check Requirement Traces (push) Successful in 11s
Build & Release / Run Tests (push) Successful in 14m49s
🏗️ Build and Test JellyTau / Android Compile Check (push) Successful in 4m22s
Build & Release / Build Linux (push) Failing after 17m42s
Build & Release / Build Windows (push) Successful in 15m46s
Build & Release / Build Android (push) Successful in 30m54s
Build & Release / Create Release (push) Skipped
Two defects on the release path, both of which would have failed the v0.10.0 build after all three platforms had already compiled -- caught by running a real signed build locally instead of waiting for the tag. **createUpdaterArtifacts was never set.** Without it Tauri emits only the plain .AppImage and .exe: no signatures at all. The manifest step then finds none and aborts by design, so the release dies at Create Release having spent ~40 minutes building artifacts it cannot publish. **The manifest looked for the wrong filename.** Tauri v2 signs the .AppImage *itself* and writes <name>.AppImage.sig beside it. The .AppImage.tar.gz form this workflow globbed for only exists under createUpdaterArtifacts: "v1Compatible". A real signed build produced: 154M JellyTau_0.10.0_amd64.AppImage 420 JellyTau_0.10.0_amd64.AppImage.sig so the glob would have matched nothing and the step would have aborted for a second, entirely different reason. Both the artifact collection and the manifest now use the v2 names, and the AppImage and its .sig ship together -- a manifest referencing a signature that was never uploaded fails only on the user's machine. Verified before tagging rather than after: the manifest logic was run against the real artifacts (420-char minisign signature read correctly) and the resulting latest.json checked for validity and shape. The Windows side already used the correct pattern (<installer>.exe.sig), which is why only Linux needed the change.
91 lines
3.0 KiB
JSON
91 lines
3.0 KiB
JSON
{
|
|
"$schema": "https://schema.tauri.app/config/2",
|
|
"productName": "JellyTau",
|
|
"version": "0.10.0",
|
|
"identifier": "com.dtourolle.jellytau",
|
|
"build": {
|
|
"beforeDevCommand": "bun run dev",
|
|
"devUrl": "http://localhost:1420",
|
|
"beforeBuildCommand": "bun run build",
|
|
"frontendDist": "../build"
|
|
},
|
|
"app": {
|
|
"windows": [
|
|
{
|
|
"title": "JellyTau",
|
|
"width": 1280,
|
|
"height": 800,
|
|
"minWidth": 800,
|
|
"minHeight": 600,
|
|
"resizable": true
|
|
}
|
|
],
|
|
"security": {
|
|
"csp": "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; font-src 'self' data:; img-src 'self' data: blob: asset: http://asset.localhost http: https:; media-src 'self' blob: asset: http://asset.localhost http://127.0.0.1:* http: https:; connect-src 'self' ipc: http://ipc.localhost http: https:; worker-src 'self' blob:; object-src 'none'; frame-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'",
|
|
"devCsp": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; font-src 'self' data:; img-src 'self' data: blob: asset: http://asset.localhost http: https:; media-src 'self' blob: asset: http://asset.localhost http://127.0.0.1:* http: https:; connect-src 'self' ipc: http://ipc.localhost http: https: ws: wss:; worker-src 'self' blob:; object-src 'none'; frame-src 'none'; base-uri 'self'; form-action 'self'",
|
|
"assetProtocol": {
|
|
"enable": true,
|
|
"scope": [
|
|
"$APPDATA/thumbnails/**"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"plugins": {
|
|
"updater": {
|
|
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDhBMEY0NDJDRDAxRUU3NkMKUldSczV4N1FMRVFQaXNXSlV6U3RXdk5qT2NCY0s2eTZ2Q3RYS25MNnNKY09HcU5LSTJjUUx3d3MK",
|
|
"endpoints": [
|
|
"https://gitea.tourolle.paris/dtourolle/jellytau/raw/branch/updater/latest.json"
|
|
],
|
|
"windows": {
|
|
"installMode": "passive"
|
|
}
|
|
}
|
|
},
|
|
"bundle": {
|
|
"active": true,
|
|
"createUpdaterArtifacts": true,
|
|
"targets": [
|
|
"deb",
|
|
"rpm",
|
|
"appimage",
|
|
"nsis"
|
|
],
|
|
"icon": [
|
|
"icons/32x32.png",
|
|
"icons/128x128.png",
|
|
"icons/128x128@2x.png",
|
|
"icons/icon.icns",
|
|
"icons/icon.ico"
|
|
],
|
|
"publisher": "Duncan Tourolle",
|
|
"copyright": "Copyright \u00a9 2026 Duncan Tourolle",
|
|
"category": "Video",
|
|
"shortDescription": "A cross-platform Jellyfin client",
|
|
"longDescription": "JellyTau is a Jellyfin client for Linux and Android. It streams and downloads music and video from a Jellyfin server, plays them back offline, and can control other Jellyfin sessions on the network.",
|
|
"licenseFile": "../LICENSE",
|
|
"linux": {
|
|
"deb": {
|
|
"provides": [
|
|
"jellytau"
|
|
],
|
|
"conflicts": [
|
|
"jellytau"
|
|
],
|
|
"replaces": [
|
|
"jellytau"
|
|
]
|
|
},
|
|
"rpm": {
|
|
"provides": [
|
|
"jellytau"
|
|
],
|
|
"obsoletes": [
|
|
"jellytau"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"mainBinaryName": "jellytau"
|
|
}
|