66 tags :
77 - ' v*'
88 paths :
9- - ' client/**'
9+ - ' app/**'
10+ - ' gradle/**'
11+ - ' build.gradle.kts'
12+ - ' settings.gradle.kts'
13+ - ' gradle.properties'
1014 - ' .github/workflows/client.yml'
1115 pull_request :
1216 branches : [ main ]
1317 paths :
14- - ' client/**'
18+ - ' app/**'
19+ - ' gradle/**'
20+ - ' build.gradle.kts'
21+ - ' settings.gradle.kts'
22+ - ' gradle.properties'
1523 - ' .github/workflows/client.yml'
1624
1725jobs :
1826 check :
19- runs-on : self-hosted
20- defaults :
21- run :
22- working-directory : client
27+ runs-on : ubuntu-latest
2328
2429 steps :
2530 - uses : actions/checkout@v4
3439 - name : Grant execute permission for gradlew
3540 run : chmod +x gradlew
3641
42+ - name : Prepare local config
43+ env :
44+ LOCALHOST : ${{ vars.LOCALHOST }}
45+ HJSERVER : ${{ vars.HJSERVER }}
46+ run : |
47+ keytool -genkeypair -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 \
48+ -storepass android -keypass android -keystore debug.keystore \
49+ -dname "CN=Android Debug,O=Android,C=US"
50+ {
51+ echo "KEYSTORE_PATH=debug.keystore"
52+ echo "KEYSTORE_PASSWORD=android"
53+ echo "KEY_ALIAS=androiddebugkey"
54+ echo "KEY_PASSWORD=android"
55+ } > local.properties
56+ {
57+ echo "LOCALHOST=${LOCALHOST:-http://127.0.0.1}"
58+ echo "HJSERVER=${HJSERVER:-https://example.invalid}"
59+ } >> gradle.properties
60+
3761 - name : Lint
3862 run : ./gradlew lintDebug --no-daemon
3963
4468 runs-on : ubuntu-latest
4569 if : startsWith(github.ref, 'refs/tags/v')
4670 needs : [check]
47- defaults :
48- run :
49- working-directory : client
5071
5172 steps :
5273 - uses : actions/checkout@v4
@@ -61,19 +82,35 @@ jobs:
6182 - name : Grant execute permission for gradlew
6283 run : chmod +x gradlew
6384
64- - name : Build Release APK
65- run : ./gradlew assembleRelease --no-daemon
85+ - name : Prepare release config
6686 env :
6787 KEYSTORE_BASE64 : ${{ secrets.KEYSTORE_BASE64 }}
6888 KEYSTORE_PASSWORD : ${{ secrets.KEYSTORE_PASSWORD }}
6989 KEY_ALIAS : ${{ secrets.KEY_ALIAS }}
7090 KEY_PASSWORD : ${{ secrets.KEY_PASSWORD }}
91+ LOCALHOST : ${{ vars.LOCALHOST }}
92+ HJSERVER : ${{ vars.HJSERVER }}
93+ run : |
94+ echo "$KEYSTORE_BASE64" | base64 --decode > release.keystore
95+ {
96+ echo "KEYSTORE_PATH=release.keystore"
97+ echo "KEYSTORE_PASSWORD=$KEYSTORE_PASSWORD"
98+ echo "KEY_ALIAS=$KEY_ALIAS"
99+ echo "KEY_PASSWORD=$KEY_PASSWORD"
100+ } > local.properties
101+ {
102+ echo "LOCALHOST=${LOCALHOST:-http://127.0.0.1}"
103+ echo "HJSERVER=${HJSERVER:-https://example.invalid}"
104+ } >> gradle.properties
105+
106+ - name : Build Release APK
107+ run : ./gradlew assembleRelease --no-daemon
71108
72109 - name : Upload APK
73110 uses : actions/upload-artifact@v4
74111 with :
75112 name : release-apk
76- path : client/ app/build/outputs/apk/release/*.apk
113+ path : app/build/outputs/apk/release/*.apk
77114 retention-days : 30
78115
79116 - name : Get version from tag
83120 - name : Create GitHub Release
84121 uses : softprops/action-gh-release@v1
85122 with :
86- files : client/ app/build/outputs/apk/release/*.apk
123+ files : app/build/outputs/apk/release/*.apk
87124 tag_name : ${{ steps.version.outputs.VERSION }}
88125 generate_release_notes : true
89126 env :
0 commit comments