From e42e2dac790a1993ef1500831d3dcd0df5be1b04 Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 4 Jul 2026 13:49:02 +0800 Subject: [PATCH] Fix: Install gcompat for NDK clang on Alpine Linux and remove container config --- .github/workflows/build.yml | 72 ++++++++++++++++++++++++++++--------- 1 file changed, 56 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9806375..9b2b997 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -48,28 +48,35 @@ jobs: build-android: name: Build Android APK runs-on: ubuntu - container: ubuntu:22.04 if: ${{ github.event.inputs.build_android != 'false' }} env: RUNNER_TOOL_CACHE: /toolcache - DEBIAN_FRONTEND: noninteractive steps: - - name: Install dependencies + - name: Install Node.js run: | - apt-get update - apt-get install -y curl git git-lfs openjdk-17-jdk unzip - mkdir -p /toolcache + export PATH="/toolcache/bin:$PATH" + if ! command -v node &> /dev/null; then + if command -v apk &> /dev/null; then + apk add --no-cache nodejs npm + else + curl -fsSL https://nodejs.org/dist/v20.0.0/node-v20.0.0-linux-x64.tar.xz | tar -xJ -C /tmp + mkdir -p /toolcache + cp -r /tmp/node-v20.0.0-linux-x64/{bin,lib,share} /toolcache/ + fi + fi + node --version - - name: Install Go 1.23 - run: | - curl -sL https://go.dev/dl/go1.23.0.linux-amd64.tar.gz | tar xz -C /toolcache - echo "/toolcache/go/bin" >> $GITHUB_PATH - echo "GOROOT=/toolcache/go" >> $GITHUB_ENV - /toolcache/go/bin/go version - - - name: Setup environment + - name: Install Git LFS run: | + if command -v apk &> /dev/null; then + apk add --no-cache git-lfs + elif command -v apt-get &> /dev/null; then + apt-get update && apt-get install -y git-lfs + else + curl -sL https://github.com/git-lfs/git-lfs/releases/download/v3.5.1/git-lfs-linux-amd64-v3.5.1.tar.gz | tar xz -C /tmp + mv /tmp/git-lfs-3.5.1/git-lfs /toolcache/bin/ + fi git lfs install - name: Checkout repository @@ -82,11 +89,44 @@ jobs: run: | git lfs pull || echo "LFS pull failed, continuing without LFS files (Android build doesn't need them)" - - name: Setup Java environment + - name: Install Java 17 run: | - echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> $GITHUB_ENV + if command -v apk &> /dev/null; then + # Enable community repository for openjdk17-jdk + echo "https://dl-cdn.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories + apk update + apk add --no-cache openjdk17-jdk + echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk" >> $GITHUB_ENV + elif command -v apt-get &> /dev/null; then + apt-get update && apt-get install -y openjdk-17-jdk + echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> $GITHUB_ENV + else + curl -sL https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9.tar.gz | tar xz -C /toolcache + echo "JAVA_HOME=/toolcache/jdk-17.0.9+9" >> $GITHUB_ENV + echo "/toolcache/jdk-17.0.9+9/bin" >> $GITHUB_PATH + fi java -version + - name: Install Go 1.23 + run: | + mkdir -p /toolcache + if ! command -v curl &> /dev/null; then + if command -v apk &> /dev/null; then + apk add --no-cache curl + fi + fi + curl -sL https://go.dev/dl/go1.23.0.linux-amd64.tar.gz | tar xz -C /toolcache + echo "/toolcache/go/bin" >> $GITHUB_PATH + echo "GOROOT=/toolcache/go" >> $GITHUB_ENV + /toolcache/go/bin/go version + + - name: Install gcompat (for NDK on Alpine) + run: | + # Install gcompat for running glibc binaries on Alpine (required for NDK clang) + if command -v apk &> /dev/null; then + apk add --no-cache gcompat libstdc++ + fi + - name: Setup Android SDK uses: android-actions/setup-android@v3