mirror of
				https://code.forgejo.org/actions/forgejo-release.git
				synced 2025-11-04 06:41:57 +02: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