84c4b461a9
P1 fixes (must-fix):
- AppRun: VLC path corrected to usr/lib/app/linux/vlc (jpackage actual
path), add VLC_PLUGIN_PATH env var for codec discovery
- linuxdeploy: use APPIMAGE_EXTRACT_AND_RUN=1 env var to bypass FUSE
on CI runners instead of fragile pre-extract + symlink approach
- Prerelease classifier: inverted to positive-match stable format
(^v[0-9]+\.[0-9]+\.[0-9]+$) across desktop, Android, and composite
action — eliminates regex drift between allowlists
- assert-stable-release: now accepts inputs (tag, is_prerelease,
is_draft) so workflow_dispatch on bump workflows also validates
P2 fixes (should-fix):
- .gitignore: add linuxdeploy-*.AppImage and extracted dirs
- RPM version: use replace("-", "~") instead of substringBefore("-")
for correct RPM prerelease ordering (1.08.0~rc1 < 1.08.0)
- linux-portable → linux alias moved into collect_assets() in
scripts/asset-name.sh (single source of truth)
- Android cache key: add gradle/libs.versions.toml to hashFiles
- r0adkll/sign-android-release: SHA-pinned to 349ebdef (v1)
P3 fixes (nice-to-have):
- LINUXDEPLOY_OUTPUT_VERSION env var replaced with
APPIMAGE_EXTRACT_AND_RUN (misleading comment + redundant var)
- nick-fields/retry timeout: 40m → 15m (surface real hangs)
- generate_release_notes: true only on Android job (avoid
last-writer-wins race across 6 concurrent uploaders)
- apt-get install rpm: tightened guard to matrix.family == 'linux'
(linux-portable leg doesn't need rpm tooling)
69 lines
2.6 KiB
Bash
Executable File
69 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Single source of truth for Amethyst Desktop release asset naming.
|
|
#
|
|
# Contract: amethyst-desktop-<version>-<family>-<arch>.<ext>
|
|
# <version> = tag stripped of leading 'v' (e.g. "1.08.0")
|
|
# <family> = macos | windows | linux
|
|
# <arch> = x64 | arm64
|
|
# <ext> = dmg | msi | zip | deb | rpm | AppImage | tar.gz
|
|
#
|
|
# Consumed by: .github/workflows/create-release.yml, .github/workflows/bump-*.yml,
|
|
# BUILDING.md, local release runbooks.
|
|
#
|
|
# Usage:
|
|
# source scripts/asset-name.sh
|
|
# collect_assets <family> <arch> <version> <dest_dir>
|
|
#
|
|
# Expected examples:
|
|
# amethyst-desktop-1.08.0-macos-x64.dmg
|
|
# amethyst-desktop-1.08.0-macos-arm64.dmg
|
|
# amethyst-desktop-1.08.0-windows-x64.msi
|
|
# amethyst-desktop-1.08.0-windows-x64.zip
|
|
# amethyst-desktop-1.08.0-linux-x64.deb
|
|
# amethyst-desktop-1.08.0-linux-x64.rpm
|
|
# amethyst-desktop-1.08.0-linux-x64.AppImage
|
|
# amethyst-desktop-1.08.0-linux-x64.tar.gz
|
|
|
|
set -euo pipefail
|
|
|
|
# Print the canonical asset filename for a given family/arch/version/extension.
|
|
# Usage: asset_name <family> <arch> <version> <ext>
|
|
asset_name() {
|
|
local family="$1" arch="$2" version="$3" ext="$4"
|
|
printf 'amethyst-desktop-%s-%s-%s.%s' "$version" "$family" "$arch" "$ext"
|
|
}
|
|
|
|
# Copy + rename build outputs into <dest_dir> using the canonical naming scheme.
|
|
# Usage: collect_assets <family> <arch> <version> <dest_dir>
|
|
# Expects build outputs under desktopApp/build/... (Compose binaries + custom tasks + portable archives).
|
|
collect_assets() {
|
|
local family="$1" arch="$2" version="$3" dest="$4"
|
|
# Normalize internal matrix family aliases to canonical asset-name families.
|
|
[[ "$family" == "linux-portable" ]] && family="linux"
|
|
mkdir -p "$dest"
|
|
shopt -s nullglob
|
|
|
|
# Compose Desktop jpackage outputs (main-release/<format>/*.ext)
|
|
local src ext base dst
|
|
for src in \
|
|
desktopApp/build/compose/binaries/main-release/dmg/*.dmg \
|
|
desktopApp/build/compose/binaries/main-release/msi/*.msi \
|
|
desktopApp/build/compose/binaries/main-release/deb/*.deb \
|
|
desktopApp/build/compose/binaries/main-release/rpm/*.rpm \
|
|
desktopApp/build/appimage/*.AppImage \
|
|
desktopApp/build/portable/*.tar.gz \
|
|
desktopApp/build/portable/*.zip \
|
|
; do
|
|
[ -f "$src" ] || continue
|
|
base="$(basename "$src")"
|
|
case "$base" in
|
|
*.tar.gz) ext="tar.gz" ;;
|
|
*) ext="${base##*.}" ;;
|
|
esac
|
|
dst="$dest/$(asset_name "$family" "$arch" "$version" "$ext")"
|
|
cp "$src" "$dst"
|
|
echo "Collected: $dst"
|
|
done
|
|
shopt -u nullglob
|
|
}
|