Skip to content

Commit fed6090

Browse files
committed
ci: use android-actions/setup-android for clean SDK, install NDK, clear Gradle cache between runs
1 parent 700c527 commit fed6090

1 file changed

Lines changed: 30 additions & 31 deletions

File tree

.github/workflows/build-android.yml

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,29 @@ jobs:
1414
env:
1515
EXPO_PUBLIC_CONVEX_URL: https://placeholder.convex.cloud
1616
EXPO_PUBLIC_AUTH_BASE_URL: https://placeholder.convex.site
17-
ANDROID_HOME: /usr/local/lib/android/sdk
18-
ANDROID_SDK_ROOT: /usr/local/lib/android/sdk
1917
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4096m -Dorg.gradle.daemon=false"
2018
EXPO_NO_TELEMETRY: "1"
2119
CI: "true"
2220

2321
steps:
2422
- uses: actions/checkout@v4
2523

26-
- uses: actions/setup-java@v4
27-
with: { java-version: '17', distribution: 'temurin' }
24+
- name: Set up Java 17
25+
uses: actions/setup-java@v4
26+
with:
27+
java-version: '17'
28+
distribution: 'temurin'
29+
30+
- name: Set up Android SDK (clean)
31+
uses: android-actions/setup-android@v3
32+
with:
33+
packages: >
34+
tools
35+
platform-tools
36+
platforms;android-34
37+
build-tools;34.0.0
38+
ndk;26.1.10909125
39+
cmake;3.22.1
2840
2941
- uses: actions/setup-node@v4
3042
with: { node-version: '20' }
@@ -36,12 +48,6 @@ jobs:
3648
working-directory: apps/native
3749
run: bun install --ignore-scripts
3850

39-
- name: Set up Android SDK
40-
run: |
41-
SDKM=$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager
42-
yes | $SDKM --licenses 2>/dev/null || true
43-
$SDKM "platform-tools" "platforms;android-34" "build-tools;34.0.0" 2>&1 | tail -3
44-
4551
- name: Expo prebuild
4652
working-directory: apps/native
4753
continue-on-error: true
@@ -56,37 +62,30 @@ jobs:
5662
[ -n "$GRADLEW" ] || { echo "No gradlew"; exit 1; }
5763
echo "gradlew=$GRADLEW" >> $GITHUB_OUTPUT
5864
echo "android_dir=$(dirname $GRADLEW)" >> $GITHUB_OUTPUT
65+
chmod +x $GRADLEW
5966
6067
- name: Cache Gradle
6168
uses: actions/cache@v4
6269
with:
6370
path: |
6471
~/.gradle/wrapper
6572
~/.gradle/caches
66-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle-wrapper.properties') }}
67-
restore-keys: ${{ runner.os }}-gradle-
73+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle-wrapper.properties') }}-v2
74+
restore-keys: |
75+
${{ runner.os }}-gradle-
6876
69-
- name: Build debug APK (output to file)
70-
id: gradle
77+
- name: Build debug APK
78+
working-directory: ${{ steps.find-android.outputs.android_dir }}
7179
run: |
72-
chmod +x ${{ steps.find-android.outputs.gradlew }}
73-
cd ${{ steps.find-android.outputs.android_dir }}
74-
echo "=== gradle.properties ==" >> /tmp/gradle.log
75-
cat gradle.properties >> /tmp/gradle.log 2>&1
76-
echo "" >> /tmp/gradle.log
77-
echo "=== build-tools ==" >> /tmp/gradle.log
78-
ls $ANDROID_HOME/build-tools/ >> /tmp/gradle.log 2>&1
79-
echo "=== platforms ==" >> /tmp/gradle.log
80-
ls $ANDROID_HOME/platforms/ >> /tmp/gradle.log 2>&1
81-
echo "" >> /tmp/gradle.log
82-
echo "=== Gradle build ==" >> /tmp/gradle.log
83-
./gradlew assembleDebug --no-daemon --stacktrace >> /tmp/gradle.log 2>&1
84-
RC=$?
85-
tail -100 /tmp/gradle.log
86-
echo "exit=$RC" >> $GITHUB_OUTPUT
87-
exit $RC
80+
echo "=== Build environment ==="
81+
echo "ANDROID_HOME=$ANDROID_HOME"
82+
ls $ANDROID_HOME/build-tools/ 2>/dev/null
83+
ls $ANDROID_HOME/platforms/ 2>/dev/null
84+
ls $ANDROID_HOME/ndk/ 2>/dev/null | head -3
85+
echo "=== Gradle build ==="
86+
./gradlew assembleDebug --no-daemon --no-build-cache --stacktrace 2>&1 | tee /tmp/gradle.log | tail -80
8887
89-
- name: Upload Gradle log (always)
88+
- name: Upload Gradle log
9089
if: always()
9190
uses: actions/upload-artifact@v4
9291
with:

0 commit comments

Comments
 (0)