@@ -33,19 +33,50 @@ jobs:
3333 node-version : ' 18'
3434 cache : ' yarn'
3535 - name : Setup Java 17
36- uses : actions/setup-java@v3
36+ uses : actions/setup-java@v4
3737 with :
3838 distribution : ' zulu'
3939 java-version : 17
40+ cache : ' gradle'
4041 - name : Install root dependencies
4142 run : yarn install --immutable
4243 - name : Install Expo CLI
4344 run : |
4445 npm install -g @expo/cli
4546 echo "$(npm prefix -g)/bin" >> $GITHUB_PATH
47+ - name : Cache Expo prebuild
48+ uses : actions/cache@v4
49+ with :
50+ path : ${{ env.WORKING_DIRECTORY }}/android
51+ key : ${{ runner.os }}-expo-android-${{ hashFiles('${{ env.WORKING_DIRECTORY }}/app.json', '${{ env.WORKING_DIRECTORY }}/package.json') }}
52+ restore-keys : |
53+ ${{ runner.os }}-expo-android-
4654 - name : Generate native Android project
4755 working-directory : ${{ env.WORKING_DIRECTORY }}
48- run : npx expo prebuild --platform android --no-install
56+ run : |
57+ if [ ! -d "android" ]; then
58+ npx expo prebuild --platform android --no-install
59+ else
60+ echo "Android project exists, skipping prebuild"
61+ fi
62+ - name : Cache Gradle
63+ uses : actions/cache@v4
64+ with :
65+ path : |
66+ ~/.gradle/caches
67+ ~/.gradle/wrapper
68+ ${{ env.WORKING_DIRECTORY }}/android/.gradle
69+ key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
70+ restore-keys : |
71+ ${{ runner.os }}-gradle-
4972 - name : Build app
5073 working-directory : ${{ env.WORKING_DIRECTORY }}/android
51- run : ./gradlew assembleDebug --build-cache -PreactNativeArchitectures=arm64-v8a
74+ run : |
75+ ./gradlew assembleDebug \
76+ --build-cache \
77+ --parallel \
78+ --daemon \
79+ --configure-on-demand \
80+ -PreactNativeArchitectures=arm64-v8a \
81+ -Dorg.gradle.jvmargs="-Xmx4g -XX:+HeapDumpOnOutOfMemoryError" \
82+ -Dorg.gradle.workers.max=4
0 commit comments