chore: add release infrastructure and packaging support
Add GitHub Actions workflows for CI and release builds, packaging scripts for Windows, macOS, Linux, and Flatpak/Snap distribution, application icons, desktop files, and release metadata resources.
This commit is contained in:
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")/../.."
|
||||
shopt -s extglob
|
||||
|
||||
# Get system architecture
|
||||
ARCH=$(uname -m)
|
||||
case "$ARCH" in
|
||||
x86_64) ARCH_SUFFIX="x86_64" ;;
|
||||
aarch64) ARCH_SUFFIX="aarch64" ;;
|
||||
*) echo "Unsupported architecture: $ARCH"; exit 1 ;;
|
||||
esac
|
||||
|
||||
archive_match="signed(-[a-zA-Z0-9]+)?-linux-${ARCH_SUFFIX}\.tar\.gz"
|
||||
archive=$(ls "target/release" | grep -E ${archive_match})
|
||||
|
||||
export ARCHIVE="$archive"
|
||||
export APP_ID="su.reya.signed"
|
||||
export APP_NAME="Signed"
|
||||
export BRANDING_LIGHT="#C6FF4D"
|
||||
export BRANDING_DARK="#C6FF4D"
|
||||
export ICON_FILE="icon"
|
||||
export CHANNEL="stable"
|
||||
|
||||
# Generate manifest
|
||||
envsubst < "desktop/resources/flatpak/manifest-template.json" > "$APP_ID.json"
|
||||
|
||||
# Build Flatpak
|
||||
flatpak-builder --user --install --force-clean build "$APP_ID.json"
|
||||
|
||||
# Create bundle with architecture suffix
|
||||
OUTPUT_FILE="target/release/${APP_ID}_${ARCH_SUFFIX}.flatpak"
|
||||
flatpak build-bundle ~/.local/share/flatpak/repo "$OUTPUT_FILE" "$APP_ID"
|
||||
echo "Created '$OUTPUT_FILE'"
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
arch=$(arch)
|
||||
fd_version=24.08
|
||||
flatpak install -y --user org.freedesktop.Platform/${arch}/${fd_version}
|
||||
flatpak install -y --user org.freedesktop.Sdk/${arch}/${fd_version}
|
||||
flatpak install -y --user org.freedesktop.Sdk.Extension.rust-stable/${arch}/${fd_version}
|
||||
Reference in New Issue
Block a user