-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (115 loc) · 4.48 KB
/
Copy pathandroid.yml
File metadata and controls
136 lines (115 loc) · 4.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: android
on:
push:
branches:
#- develop
- master
tags: ["v*"]
pull_request:
branches: [main]
jobs:
build-android:
runs-on: ubuntu-latest
env:
#ANDROID_SDK_ROOT: ${{ github.workspace }}/android-sdk
ANDROID_HOME: ${{ github.workspace }}/android-sdk
#ANDROID_NDK_VERSION: 26.1.10909125
ANDROID_NDK_VERSION: 29.0.14033849
JAVA_VERSION: "23"
ANDROID_API_LEVEL: "34"
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx4g -XX:+UseParallelGC"
steps:
- name: Checkout repo and submodules
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0 # fetch full history including tags
- name: Update build information
run: |
bin/setbuild.sh
cat src/build.h
- name: Update CMakeLists.txt
run: |
python3 bin/refresh.py
- name: Patch source
run: |
printf "\nbetaui true\n" >> data/game.cfg
mkdir -p android-project/app/src/main/assets
cp -r data/* android-project/app/src/main/assets
ls -l android-project/app/src/main/assets
sed -i -e 's/#ifdef HAVE_FSEEKO/#ifdef HAVE_FSEEKO_DISABLED/g' external/SDL3_mixer/external/wavpack/src/open_filename.c
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ env.JAVA_VERSION }}
- name: Install Android SDK cmdline tools
run: |
mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools"
curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -o cmdline-tools.zip
unzip -q cmdline-tools.zip -d "$ANDROID_SDK_ROOT/cmdline-tools"
mv "$ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools" "$ANDROID_SDK_ROOT/cmdline-tools/latest"
yes | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" --licenses
- name: Install SDK platforms, build tools, and NDK
run: |
"$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" \
"platforms;android-${{ env.ANDROID_API_LEVEL }}" \
"platform-tools" \
"build-tools;34.0.0" \
"ndk;${{ env.ANDROID_NDK_VERSION }}"
- name: Set up Gradle cache
uses: gradle/actions/setup-gradle@v3
- name: Print SDK path
working-directory: android-project
run: ./gradlew -version
- name: Verify environment
run: |
java -version
echo "JAVA_HOME: $JAVA_HOME"
echo "ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT"
echo "ANDROID_NDK_HOME: $ANDROID_NDK_HOME"
- name: Verify Android SDK
run: |
ls -l "$ANDROID_SDK_ROOT"
ls -l "$ANDROID_SDK_ROOT/cmdline-tools"
ls -l "$ANDROID_SDK_ROOT/cmdline-tools/latest"
ls -l "$ANDROID_SDK_ROOT/platforms"
ls -l "$ANDROID_SDK_ROOT/ndk"
- name: Verify Android NDK
run: |
ls -l "$ANDROID_NDK_HOME"
"$ANDROID_NDK_HOME/ndk-build" --version
- name: Clean old builds
working-directory: android-project
run: ./gradlew clean
#- name: Build Debug APK
# working-directory: android-project
# run: ./gradlew assembleDebug -Pandroid.ndkVersion=${{ env.ANDROID_NDK_VERSION }}
- name: Build Release APK / AAB (unsigned)
working-directory: android-project
run: ./gradlew assembleRelease bundleRelease -Pandroid.ndkVersion=${{ env.ANDROID_NDK_VERSION }}
- name: Show build outputs
working-directory: android-project
run: |
ls -l app/build/outputs/apk
ls -l app/build/outputs/apk/release
ls -l app/build/outputs/bundle
- name: Sign Release APK and AAB
#if: ${{ secrets.ANDROID_KEYSTORE_BASE64 != '' }}
working-directory: android-project
run: |
./gradlew \
-Pandroid.ndkVersion=${{ env.ANDROID_NDK_VERSION }} \
-PstoreFile=${{ runner.temp }}/release.keystore \
-PstorePassword=${{ secrets.ANDROID_KEY_PASSWORD }} \
-PkeyAlias=${{ secrets.ANDROID_KEY_ALIAS }} \
-PkeyPassword=${{ secrets.ANDROID_KEY_PASSWORD }} \
signRelease
- name: Upload APK artifacts
uses: actions/upload-artifact@v4
with:
name: android-apks
path: |
android-project/app/build/outputs/apk/**/app-*.apk
android-project/app/build/outputs/bundle/**/app-*.aab
retention-days: 7