From 4acdff0477bd7e688e166a3770385ec4fba80f84 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 3 Jul 2026 21:26:51 +0800 Subject: [PATCH] Fix: Use kankanjiao CI/CD style environment setup with RUNNER_TOOL_CACHE --- .github/workflows/build-debug.yml | 50 ++++++++++++++++++++++++++++--- .github/workflows/build.yml | 50 ++++++++++++++++++++++++++++--- .gitignore | 3 ++ 3 files changed, 95 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-debug.yml b/.github/workflows/build-debug.yml index cac0441..e291de2 100644 --- a/.github/workflows/build-debug.yml +++ b/.github/workflows/build-debug.yml @@ -15,13 +15,35 @@ jobs: build-android-debug: name: Build Android Debug APK runs-on: ubuntu + env: + RUNNER_TOOL_CACHE: /toolcache steps: - - name: Install dependencies + - name: Install Node.js run: | - apt-get update - apt-get install -y openjdk-17-jdk git-lfs golang-go - echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> $GITHUB_ENV + 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 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 uses: actions/checkout@v4 @@ -34,6 +56,26 @@ jobs: git lfs install git lfs pull + - name: Install Java 17 + run: | + if 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 + + - name: Install Go 1.23 + run: | + if command -v apt-get &> /dev/null; then + apt-get update && apt-get install -y golang-go + else + curl -sL https://go.dev/dl/go1.23.0.linux-amd64.tar.gz | tar xz -C /toolcache + echo "/toolcache/go/bin" >> $GITHUB_PATH + fi + - name: Setup Android SDK uses: android-actions/setup-android@v3 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d8872c8..1cceadc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,13 +49,35 @@ jobs: name: Build Android APK runs-on: ubuntu if: ${{ github.event.inputs.build_android != 'false' }} + env: + RUNNER_TOOL_CACHE: /toolcache steps: - - name: Install dependencies + - name: Install Node.js run: | - apt-get update - apt-get install -y openjdk-17-jdk git-lfs golang-go - echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> $GITHUB_ENV + 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 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 uses: actions/checkout@v4 @@ -68,6 +90,26 @@ jobs: git lfs install git lfs pull + - name: Install Java 17 + run: | + if 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 + + - name: Install Go 1.23 + run: | + if command -v apt-get &> /dev/null; then + apt-get update && apt-get install -y golang-go + else + curl -sL https://go.dev/dl/go1.23.0.linux-amd64.tar.gz | tar xz -C /toolcache + echo "/toolcache/go/bin" >> $GITHUB_PATH + fi + - name: Setup Android SDK uses: android-actions/setup-android@v3 diff --git a/.gitignore b/.gitignore index 169a47c..40127d4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ app-profile.apk .DS_Store +# Exclude kankanjiao project +/kankanjiao/ + # Do not remove or rename entries in this file, only add new ones # See https://github.com/flutter/flutter/issues/128635 for more context.