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

Compare commits

...

2 commits

Author SHA1 Message Date
Jack Greiner
854ee4ce4f
tests.yml: Run tests on both Debian and Alpine base images. 2025-10-07 04:55:50 -04:00
Jack Greiner
067e18fae2
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-10-07 04:54:54 -04:00
2 changed files with 40 additions and 6 deletions

View file

@ -1,7 +1,12 @@
on: [ pull_request, push ]
jobs:
tests:
strategy:
matrix:
tag: [lts, lts-alpine]
runs-on: docker
container:
image: "node:${{ matrix.tag }}"
steps:
- uses: actions/checkout@v4

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,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
}