-
Notifications
You must be signed in to change notification settings - Fork 8
129 lines (95 loc) · 4.68 KB
/
android-tests.yml
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
name: Android Tests
on:
workflow_dispatch:
push:
branches: [ main ]
paths:
- '.github/workflows/android-tests.yml'
- 'binding/android/PicoLLM/**'
- 'binding/android/PicoLLMTestApp/**'
- '!binding/android/PicoLLM/README.md'
pull_request:
branches: [ main, 'v[0-9]+.[0-9]+']
paths:
- '.github/workflows/android-tests.yml'
- 'binding/android/PicoLLM/**'
- 'binding/android/PicoLLMTestApp/**'
- '!binding/android/PicoLLM/README.md'
defaults:
run:
working-directory: binding/android/PicoLLMTestApp
jobs:
test:
name: Run Android Tests
runs-on: pv-android
steps:
- uses: actions/checkout@v3
- name: Uninstall previous app
run: ~/Android/Sdk/platform-tools/adb shell pm uninstall ai.picovoice.picollm.testapp || true
- name: Uninstall previous tests
run: ~/Android/Sdk/platform-tools/adb shell pm uninstall ai.picovoice.picollm.testapp.test || true
- name: Download resource files
run: curl http://${{secrets.PV_CICD_RES_SERVER_AUTHORITY}}/github/picollm/res/phi2-290.pllm/04-d5f2aa0/phi2-290.pllm -o phi2-290.pllm
- name: Make Android dir
run: ~/Android/Sdk/platform-tools/adb shell mkdir -p /sdcard/Android/data/ai.picovoice.picollm.testapp/files/external
- name: Copy resource files
run: ~/Android/Sdk/platform-tools/adb push --sync phi2-290.pllm /sdcard/Android/data/ai.picovoice.picollm.testapp/files/external/phi2-290.pllm
- name: Inject AccessKey
run: echo pvTestingAccessKey="${{secrets.PV_VALID_ACCESS_KEY}}" >> local.properties
- name: Inject model name
run: echo pvTestingModelName="phi2-290.pllm" >> local.properties
- name: Inject device string
run: echo pvTestingDevice="cpu" >> local.properties
- name: Inject Android keystore variables
run: |
echo storePassword="${{secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD}}" >> local.properties
echo keyPassword="${{secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD}}" >> local.properties
echo keyAlias=picovoice >> local.properties
echo storeFile=../picovoice.jks >> local.properties
- name: Setup Android keystore file
run: echo "${{secrets.ANDROID_RELEASE_KEYSTORE_FILE_B64}}" | base64 -d > picovoice.jks
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build app
run: ./gradlew assembleDebug --info
- name: Build androidTest
run: ./gradlew assembleAndroidTest --info
- name: Run tests
run: ./gradlew connectedAndroidTest --info -Pandroid.testInstrumentationRunnerArguments.class=ai.picovoice.picollm.testapp.PicoLLMTest
test-integ:
name: Run Android Integ Tests
runs-on: pv-android
steps:
- uses: actions/checkout@v3
- name: Uninstall previous app
run: ~/Android/Sdk/platform-tools/adb shell pm uninstall ai.picovoice.picollm.testapp || true
- name: Uninstall previous tests
run: ~/Android/Sdk/platform-tools/adb shell pm uninstall ai.picovoice.picollm.testapp.test || true
- name: Download resource files
run: curl http://${{secrets.PV_CICD_RES_SERVER_AUTHORITY}}/github/picollm/res/phi2-290.pllm/04-d5f2aa0/phi2-290.pllm -o phi2-290.pllm
- name: Make Android dir
run: ~/Android/Sdk/platform-tools/adb shell mkdir -p /sdcard/Android/data/ai.picovoice.picollm.testapp/files/external
- name: Copy resource files
run: ~/Android/Sdk/platform-tools/adb push --sync phi2-290.pllm /sdcard/Android/data/ai.picovoice.picollm.testapp/files/external/phi2-290.pllm
- name: Inject AccessKey
run: echo pvTestingAccessKey="${{secrets.PV_VALID_ACCESS_KEY}}" >> local.properties
- name: Inject model name
run: echo pvTestingModelName="phi2-290.pllm" >> local.properties
- name: Inject device string
run: echo pvTestingDevice="cpu" >> local.properties
- name: Inject Android keystore variables
run: |
echo storePassword="${{secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD}}" >> local.properties
echo keyPassword="${{secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD}}" >> local.properties
echo keyAlias=picovoice >> local.properties
echo storeFile=../picovoice.jks >> local.properties
- name: Setup Android keystore file
run: echo "${{secrets.ANDROID_RELEASE_KEYSTORE_FILE_B64}}" | base64 -d > picovoice.jks
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build app
run: ./gradlew assembleRelease --info
- name: Build androidTest
run: ./gradlew assembleReleaseAndroidTest --info
- name: Run tests
run: ./gradlew connectedAndroidTest --info -Pandroid.testInstrumentationRunnerArguments.class=ai.picovoice.picollm.testapp.IntegrationTest