mirror of
https://code.forgejo.org/actions/forgejo-release.git
synced 2025-10-13 16:11:56 +03:00
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:
parent
e5e095057a
commit
067e18fae2
1 changed files with 35 additions and 6 deletions
|
@ -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,20 @@ 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 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
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue