forgejo-release.sh: Improve support for different Linux bases

Currently if you run this action and aren't using a Debian based runner you need to install all tools ahead of time or the Action fails.

This should improve the behaviour so that it will attempt to install all dependencies on a best effort basis.
This commit is contained in:
Jack Greiner 2025-10-07 04:54:54 -04:00
parent e5e095057a
commit 067e18fae2
No known key found for this signature in database
GPG key ID: F34343A8F6B33E1E

View file

@ -26,11 +26,29 @@ TAG_URL=$(echo "$TAG" | sed 's/\//%2F/g')
export GNUPGHOME export GNUPGHOME
get_arch() {
local arch
arch="$(uname -m)"
case "$arch" in
x86_64) arch="amd64" ;;
i386|i686) arch="i386" ;;
aarch64) arch="arm64" ;;
armv7l) arch="armhf" ;; # Debian uses armhf for hard-float 32-bit ARM
armv6l) arch="armel" ;; # older 32-bit ARM
riscv64) arch="riscv64" ;;
ppc64le) arch="ppc64el" ;;
s390x) arch="s390x" ;;
*) echo "Unknown architecture: $arch" >&2; return 1 ;;
esac
echo "$arch"
}
setup_tea() { setup_tea() {
if which tea 2>/dev/null; then if command -v tea >/dev/null 2>&1; then
TEA_BIN=$(which tea) TEA_BIN=$(command -v tea)
elif ! test -f $TEA_BIN; then elif ! test -f $TEA_BIN; then
ARCH=$(dpkg --print-architecture) ARCH=$(get_arch)
curl -sL https://dl.gitea.io/tea/$TEA_VERSION/tea-$TEA_VERSION-linux-"$ARCH" >$TEA_BIN curl -sL https://dl.gitea.io/tea/$TEA_VERSION/tea-$TEA_VERSION-linux-"$ARCH" >$TEA_BIN
chmod +x $TEA_BIN chmod +x $TEA_BIN
fi fi
@ -166,9 +184,20 @@ upload() {
} }
setup_api() { setup_api() {
if ! which jq curl; then # Check if jq and curl are available
apt-get -qq update if command -v jq >/dev/null 2>&1 && command -v curl >/dev/null 2>&1; then
apt-get install -y -qq jq curl return 0
fi
echo "jq and/or curl missing, attempting to install..." >&2
if command -v apt-get >/dev/null 2>&1; then
apt-get -qq update && apt-get install -y -qq jq curl
elif command -v apk >/dev/null 2>&1; then
apk add --no-cache jq curl
else
echo "No supported package manager found. Please install jq and curl manually." >&2
return 1
fi fi
} }