Skip to content

Commit 1a56441

Browse files
authored
Action to validate with play store (#88)
1 parent 0827aaa commit 1a56441

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Android Upload
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches: [ main ]
7+
paths:
8+
- '.github/workflows/android-upload.yml'
9+
- 'demo/android/**/build.gradle'
10+
pull_request:
11+
branches: [ main, 'v[0-9]+.[0-9]+' ]
12+
paths:
13+
- '.github/workflows/android-upload.yml'
14+
- 'demo/android/OrcaDemo/**/build.gradle'
15+
16+
jobs:
17+
upload-demo:
18+
runs-on: ubuntu-latest
19+
defaults:
20+
run:
21+
working-directory: demo/android/OrcaDemo
22+
23+
steps:
24+
- uses: actions/checkout@v3
25+
26+
- name: set up JDK 17
27+
uses: actions/setup-java@v3
28+
with:
29+
java-version: 17
30+
distribution: 'temurin'
31+
32+
- name: Set up service json
33+
run: echo ${{secrets.GOOGLE_PLAY_SERVICE_JSON}} | base64 -d > ./service-account.json
34+
35+
- name: Override version code
36+
run: |
37+
VC=`fastlane run google_play_track_version_codes \
38+
json_key:"./service-account.json" \
39+
package_name:"ai.picovoice.orcademo.enFemale" \
40+
track:"internal" \
41+
| grep -oP '(?<=Result: \[)\d+(?=\])' \
42+
| awk '{print $1+1}'`
43+
sed -i "s/versionCode [0-9]*/versionCode $VC/g" orca-demo-app/build.gradle
44+
- name: Inject Android keystore variables
45+
run: |
46+
echo storePassword="${{secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD}}" >> local.properties
47+
echo keyPassword="${{secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD}}" >> local.properties
48+
echo keyAlias=picovoice >> local.properties
49+
echo storeFile=../picovoice.jks >> local.properties
50+
- name: Setup Android keystore file
51+
run: echo "${{secrets.ANDROID_RELEASE_KEYSTORE_FILE_B64}}" | base64 -d > picovoice.jks
52+
53+
- name: Build
54+
run: ./gradlew bundleRelease
55+
56+
- name: Upload to Google Play
57+
run: fastlane supply --json_key ./service-account.json --package_name ai.picovoice.orcademo.enFemale --aab orca-demo-app/build/outputs/bundle/enFemaleRelease/orca-demo-app-enFemale-release.aab --track internal --skip_upload_metadata --skip_upload_images --skip_upload_screenshots --release_status draft

demo/android/OrcaDemo/orca-demo-app/build.gradle

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,23 @@ import groovy.json.JsonSlurper
22

33
apply plugin: 'com.android.application'
44

5+
Properties properties = new Properties()
6+
if (rootProject.file("local.properties").exists()) {
7+
properties.load(rootProject.file("local.properties").newDataInputStream())
8+
if (project.hasProperty("storePassword")) {
9+
properties.put("storePassword", project.getProperty("storePassword"))
10+
}
11+
if (project.hasProperty("storeFile")) {
12+
properties.put("storeFile", project.getProperty("storeFile"))
13+
}
14+
if (project.hasProperty("keyAlias")) {
15+
properties.put("keyAlias", project.getProperty("keyAlias"))
16+
}
17+
if (project.hasProperty("keyPassword")) {
18+
properties.put("keyPassword", project.getProperty("keyPassword"))
19+
}
20+
}
21+
522
android {
623
def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION
724
compileSdk defaultTargetSdkVersion
@@ -15,10 +32,20 @@ android {
1532

1633
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1734
}
35+
36+
signingConfigs {
37+
release {
38+
storePassword properties.getProperty("storePassword")
39+
storeFile file(properties.getProperty("storeFile", ".dummy.jks"))
40+
keyAlias properties.getProperty("keyAlias")
41+
keyPassword properties.getProperty("keyPassword")
42+
}
43+
}
1844
buildTypes {
1945
release {
2046
minifyEnabled false
2147
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
48+
signingConfig signingConfigs.release
2249
}
2350
}
2451

0 commit comments

Comments
 (0)