diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dbada09..40dc720 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -49,6 +49,9 @@ jobs: name: Build OSS APK runs-on: ubuntu-latest needs: [libcore] + container: + image: ubuntu:latest + options: --memory=12g --cpus=4 steps: - name: Checkout uses: actions/checkout@v4 @@ -67,26 +70,45 @@ jobs: restore-keys: | ${{ runner.os }}-libcore- - - name: Gradle cache + - name: Gradle Cache uses: actions/cache@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-oss-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + ~/.android/build-cache + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', '**/*.toml') }} restore-keys: | - ${{ runner.os }}-gradle-oss- + ${{ runner.os }}-gradle- + + - name: Setup Gradle + run: | + echo "org.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=2g -XX:+HeapDumpOnOutOfMemoryError" >> gradle.properties + echo "org.gradle.daemon=false" >> gradle.properties + echo "org.gradle.parallel=true" >> gradle.properties + echo "kotlin.compiler.execution.strategy=in-process" >> gradle.properties + echo "kotlin.incremental=false" >> gradle.properties - name: Gradle Build env: BUILD_PLUGIN: none - GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.jvmargs=-Xmx4g" + GRADLE_OPTS: >- + -Dorg.gradle.daemon=false + -Dorg.gradle.jvmargs="-Xmx8g -XX:MaxMetaspaceSize=2g -XX:+HeapDumpOnOutOfMemoryError" + -Dorg.gradle.workers.max=2 + -Dkotlin.compiler.execution.strategy=in-process run: | + # 清理并初始化 + ./gradlew clean --no-daemon + echo "sdk.dir=${ANDROID_HOME}" > local.properties echo "ndk.dir=${ANDROID_HOME}/ndk/25.0.8775105" >> local.properties export LOCAL_PROPERTIES="${{ secrets.LOCAL_PROPERTIES }}" ./run init action gradle - ./gradlew app:assembleOssRelease --stacktrace --info + + # 构建 + ./gradlew app:assembleOssRelease --no-daemon --stacktrace --info + APK=$(find app/build/outputs/apk -name '*arm64-v8a*.apk') APK=$(dirname $APK) echo "APK=$APK" >> $GITHUB_ENV