5
0
Fork 0
mirror of https://code.forgejo.org/actions/forgejo-release synced 2025-11-07 10:56:55 +00:00

Compare commits

...

1 commit

Author SHA1 Message Date
Jack Greiner
a91ae74f37
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.
2025-09-30 18:09:37 -04:00

View file

@ -26,11 +26,29 @@ TAG_URL=$(echo "$TAG" | sed 's/\//%2F/g')
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() {
if which tea 2>/dev/null; then
TEA_BIN=$(which tea)
if command -v tea >/dev/null 2>&1; then
TEA_BIN=$(command -v tea)
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
chmod +x $TEA_BIN
fi
@ -166,9 +184,26 @@ upload() {
}
setup_api() {
if ! which jq curl; then
apt-get -qq update
apt-get install -y -qq jq curl
# Check if jq and curl are available
if command -v jq >/dev/null 2>&1 && command -v curl >/dev/null 2>&1; then
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 dnf >/dev/null 2>&1; then
dnf -y install jq curl
elif command -v yum >/dev/null 2>&1; then
yum -y install jq curl
elif command -v apk >/dev/null 2>&1; then
apk add --no-cache jq curl
elif command -v zypper >/dev/null 2>&1; then
zypper --non-interactive install jq curl
else
echo "No supported package manager found. Please install jq and curl manually." >&2
return 1
fi
}