diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 615d9af..b27d5df 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -99,12 +99,11 @@ jobs: container: image: reactnativecommunity/react-native-android:latest env: - GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4 -Xmx8g -XX:MaxMetaspaceSize=1g -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:ReservedCodeCacheSize=512m" - _JAVA_OPTIONS: "-Xmx8g -XX:MaxMetaspaceSize=1g -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:ReservedCodeCacheSize=512m" - NODE_OPTIONS: "--max-old-space-size=8192" + GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.parallel=false -Dorg.gradle.workers.max=2 -Xmx4g -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:ReservedCodeCacheSize=256m" + _JAVA_OPTIONS: "-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:ReservedCodeCacheSize=256m" + NODE_OPTIONS: "--max-old-space-size=4096" NODE_ENV: "production" - NDK_NUM_JOBS: "4" - CMAKE_BUILD_PARALLEL_LEVEL: "8" + CMAKE_BUILD_PARALLEL_LEVEL: "4" GRADLE_USER_HOME: /root/.gradle permissions: contents: read @@ -126,17 +125,6 @@ jobs: - name: Install dependencies run: npm ci - - name: Cache Gradle - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - ~/.android/build-cache - key: ${{ runner.os }}-gradle-${{ hashFiles('package-lock.json') }} - restore-keys: | - ${{ runner.os }}-gradle- - - name: Generate Android native project run: npx expo prebuild --platform android @@ -243,10 +231,10 @@ jobs: # Update gradle.properties (without secrets for better cache hit rate) cat > gradle.properties << 'PROPS_EOF' org.gradle.daemon=false - org.gradle.parallel=true + org.gradle.parallel=false org.gradle.configureondemand=true - org.gradle.workers.max=4 - org.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=1g -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError + org.gradle.workers.max=2 + org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:ReservedCodeCacheSize=256m -XX:+HeapDumpOnOutOfMemoryError android.enableJetifier=false android.useAndroidX=true hermesEnabled=true @@ -278,7 +266,7 @@ jobs: run: | cd android chmod +x gradlew - ./gradlew :app:assembleRelease -PreactNativeArchitectures=arm64-v8a --max-workers=4 --parallel + ./gradlew :app:assembleRelease -PreactNativeArchitectures=arm64-v8a --max-workers=2 - name: Upload APK artifact uses: actions/upload-artifact@v3 diff --git a/Dockerfile.web b/Dockerfile.web index 2b90fbb..ec371e2 100644 --- a/Dockerfile.web +++ b/Dockerfile.web @@ -6,7 +6,7 @@ COPY package.json package-lock.json ./ RUN npm ci COPY . . -RUN npx expo export --platform web --output-dir dist-web +RUN NODE_OPTIONS="--max-old-space-size=2048" node /app/node_modules/.bin/expo export --platform web --output-dir dist-web FROM nginx:1.27-alpine diff --git a/plugins/withCmakeJobLimit.js b/plugins/withCmakeJobLimit.js index 3267367..f1468f8 100644 --- a/plugins/withCmakeJobLimit.js +++ b/plugins/withCmakeJobLimit.js @@ -2,7 +2,7 @@ const { withDangerousMod } = require('@expo/config-plugins'); const fs = require('fs'); const path = require('path'); -const MAX_JOBS = '8'; +const MAX_JOBS = '4'; // React Native's hermes-engine build hardcodes // Runtime.getRuntime().availableProcessors()