mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-11-07 02:55:24 +00:00
feat: publish Flatpak to our own signed repo on each release
This commit is contained in:
1 parent
30db4f8024
commit
3c6229671c
9 files changed
+219
-125
No files matched your search
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
# Builds a signed Flatpak repo and bundle from the release's portable tarballs.
|
||||
# Usage: build-repo.sh <version> <tarball dir> <output dir>
|
||||
# Env: FLATPAK_GPG_KEY_ID, FLATPAK_GPG_HOME, FLATPAK_REPO_URL, FLATPAK_ARCHES (optional)
|
||||
set -euo pipefail
|
||||
|
||||
VERSION="$1"
|
||||
TARBALLS="$(realpath "$2")"
|
||||
mkdir -p "$3"
|
||||
OUTPUT="$(realpath "$3")"
|
||||
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
ARCHES="${FLATPAK_ARCHES:-x86_64 aarch64}"
|
||||
APP_ID=com.karmaa.termix
|
||||
WORK="$OUTPUT/.work"
|
||||
rm -rf "$WORK"
|
||||
mkdir -p "$WORK"
|
||||
trap 'rm -rf "$WORK"' EXIT
|
||||
|
||||
cd "$WORK"
|
||||
cp "$ROOT"/packaging/flatpak/$APP_ID.{yml,desktop,metainfo.xml} .
|
||||
cp "$ROOT/public/icon.svg" "$APP_ID.svg"
|
||||
convert "$ROOT/public/icon.png" -resize 256x256 icon-256.png
|
||||
convert "$ROOT/public/icon.png" -resize 128x128 icon-128.png
|
||||
cp "$TARBALLS/termix_linux_x64_portable.tar.gz" termix-x86_64.tar.gz
|
||||
cp "$TARBALLS/termix_linux_arm64_portable.tar.gz" termix-aarch64.tar.gz
|
||||
|
||||
sed -i "s/VERSION_PLACEHOLDER/$VERSION/g; s/DATE_PLACEHOLDER/$(date +%Y-%m-%d)/g" "$APP_ID.metainfo.xml"
|
||||
|
||||
for arch in $ARCHES; do
|
||||
flatpak-builder --user --arch="$arch" --install-deps-from=flathub \
|
||||
--default-branch=stable --force-clean --disable-rofiles-fuse --repo=repo \
|
||||
--gpg-sign="$FLATPAK_GPG_KEY_ID" --gpg-homedir="$FLATPAK_GPG_HOME" \
|
||||
"build-$arch" "$APP_ID.yml"
|
||||
done
|
||||
|
||||
flatpak build-update-repo --title=Termix --default-branch=stable \
|
||||
--generate-static-deltas --prune \
|
||||
--gpg-sign="$FLATPAK_GPG_KEY_ID" --gpg-homedir="$FLATPAK_GPG_HOME" repo
|
||||
|
||||
gpg --homedir "$FLATPAK_GPG_HOME" --export "$FLATPAK_GPG_KEY_ID" > termix.gpg
|
||||
GPG_KEY="$(base64 -w0 termix.gpg)"
|
||||
|
||||
for arch in $ARCHES; do
|
||||
name=termix_linux_flatpak.flatpak
|
||||
[ "$arch" = x86_64 ] || name="termix_linux_${arch}_flatpak.flatpak"
|
||||
flatpak build-bundle repo "$OUTPUT/$name" "$APP_ID" stable --arch="$arch" \
|
||||
--repo-url="$FLATPAK_REPO_URL" --gpg-keys=termix.gpg \
|
||||
--runtime-repo=https://flathub.org/repo/flathub.flatpakrepo
|
||||
done
|
||||
|
||||
mv repo "$OUTPUT/site"
|
||||
for file in $APP_ID.flatpakref termix.flatpakrepo; do
|
||||
sed "s|REPO_URL_PLACEHOLDER|$FLATPAK_REPO_URL|; s|GPG_KEY_PLACEHOLDER|$GPG_KEY|" \
|
||||
"$ROOT/packaging/flatpak/$file" > "$OUTPUT/site/$file"
|
||||
done
|
||||
cp "$OUTPUT/site/$APP_ID.flatpakref" "$OUTPUT/"
|
||||
Reference in new issue
Block a user