Skip to content

Commit bf23e94

Browse files
workflow cleanups
1 parent 11e72ff commit bf23e94

2 files changed

Lines changed: 77 additions & 80 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Setup Android Emulator
2+
description: Configure KVM, Java, Gradle, and a cached Android emulator snapshot.
3+
inputs:
4+
avd-name:
5+
description: Name of the Android Virtual Device to create or reuse.
6+
required: true
7+
cache-key:
8+
description: Cache key for the Android Virtual Device files.
9+
required: true
10+
api-level:
11+
description: Android API level for the emulator.
12+
required: false
13+
default: '31'
14+
target:
15+
description: Android system image target.
16+
required: false
17+
default: google_apis
18+
arch:
19+
description: Android system image architecture.
20+
required: false
21+
default: x86_64
22+
runs:
23+
using: composite
24+
steps:
25+
- name: Enable KVM group perms
26+
shell: bash
27+
run: |
28+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
29+
sudo udevadm control --reload-rules
30+
sudo udevadm trigger --name-match=kvm
31+
32+
- name: Setup Gradle
33+
uses: gradle/actions/setup-gradle@v4
34+
35+
- name: AVD Cache
36+
uses: actions/cache@v3
37+
id: avd-cache
38+
with:
39+
path: |
40+
~/.android/avd/*
41+
~/.android/adb*
42+
key: ${{ inputs.cache-key }}
43+
44+
- name: Set up JDK 17
45+
uses: actions/setup-java@v3
46+
with:
47+
java-version: 17
48+
distribution: adopt
49+
cache: gradle
50+
51+
- name: Initialize Android Folder
52+
shell: bash
53+
run: mkdir -p ~/.android/avd
54+
55+
- name: Create AVD and generate snapshot for caching
56+
if: steps.avd-cache.outputs.cache-hit != 'true'
57+
uses: reactivecircus/android-emulator-runner@v2.28.0
58+
with:
59+
api-level: ${{ inputs.api-level }}
60+
force-avd-creation: false
61+
target: ${{ inputs.target }}
62+
arch: ${{ inputs.arch }}
63+
disable-animations: false
64+
avd-name: ${{ inputs.avd-name }}
65+
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
66+
script: echo "Generated AVD snapshot for caching."

.github/workflows/test-simulators.yaml

Lines changed: 11 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -43,30 +43,11 @@ jobs:
4343
with:
4444
persist-credentials: false
4545

46-
- name: Enable KVM group perms
47-
run: |
48-
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
49-
sudo udevadm control --reload-rules
50-
sudo udevadm trigger --name-match=kvm
51-
52-
- name: Setup Gradle
53-
uses: gradle/actions/setup-gradle@v4
54-
55-
- name: AVD Cache
56-
uses: actions/cache@v3
57-
id: avd-cache
46+
- name: Setup Android emulator
47+
uses: ./.github/actions/setup-android-emulator
5848
with:
59-
path: |
60-
~/.android/avd/*
61-
~/.android/adb*
62-
key: avd-31
63-
64-
- name: Set up JDK 17
65-
uses: actions/setup-java@v3
66-
with:
67-
java-version: 17
68-
distribution: 'adopt'
69-
cache: 'gradle'
49+
avd-name: ${{ env.AVD_NAME }}
50+
cache-key: avd-31
7051

7152
- name: Enable Corepack
7253
run: corepack enable
@@ -87,22 +68,6 @@ jobs:
8768
run: |
8869
pnpx detox clean-framework-cache && pnpx detox build-framework-cache
8970
90-
- name: Initialize Android Folder
91-
run: mkdir -p ~/.android/avd
92-
93-
- name: create AVD and generate snapshot for caching
94-
if: steps.avd-cache.outputs.cache-hit != 'true'
95-
uses: reactivecircus/android-emulator-runner@v2.28.0
96-
with:
97-
api-level: 31
98-
force-avd-creation: false
99-
target: google_apis
100-
arch: x86_64
101-
disable-animations: false
102-
avd-name: $AVD_NAME
103-
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
104-
script: echo "Generated AVD snapshot for caching."
105-
10671
- name: Android Emulator Build
10772
working-directory: ./tools/powersynctests
10873
run: pnpx detox build --configuration android.emu.release
@@ -113,7 +78,7 @@ jobs:
11378
api-level: 31
11479
target: google_apis
11580
arch: x86_64
116-
avd-name: $AVD_NAME
81+
avd-name: ${{ env.AVD_NAME }}
11782
script: cd tools/powersynctests && pnpx detox test --configuration android.emu.release --headless
11883
force-avd-creation: false
11984
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
@@ -135,30 +100,11 @@ jobs:
135100
with:
136101
persist-credentials: false
137102

138-
- name: Enable KVM group perms
139-
run: |
140-
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
141-
sudo udevadm control --reload-rules
142-
sudo udevadm trigger --name-match=kvm
143-
144-
- name: Setup Gradle
145-
uses: gradle/actions/setup-gradle@v4
146-
147-
- name: AVD Cache
148-
uses: actions/cache@v3
149-
id: capacitor-avd-cache
103+
- name: Setup Android emulator
104+
uses: ./.github/actions/setup-android-emulator
150105
with:
151-
path: |
152-
~/.android/avd/*
153-
~/.android/adb*
154-
key: capacitor-avd-31
155-
156-
- name: Set up JDK 17
157-
uses: actions/setup-java@v3
158-
with:
159-
java-version: 17
160-
distribution: 'adopt'
161-
cache: 'gradle'
106+
avd-name: ${{ env.AVD_NAME }}
107+
cache-key: capacitor-avd-31
162108

163109
- name: Enable Corepack
164110
run: corepack enable
@@ -179,30 +125,15 @@ jobs:
179125
- name: Build
180126
run: pnpm build:packages
181127

182-
- name: Initialize Android Folder
183-
run: mkdir -p ~/.android/avd
184-
185-
- name: Create AVD and generate snapshot for caching
186-
if: steps.capacitor-avd-cache.outputs.cache-hit != 'true'
187-
uses: reactivecircus/android-emulator-runner@v2.28.0
188-
with:
189-
api-level: 31
190-
force-avd-creation: false
191-
target: google_apis
192-
arch: x86_64
193-
disable-animations: false
194-
avd-name: $AVD_NAME
195-
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
196-
script: echo "Generated AVD snapshot for caching."
197-
198128
- name: Run Capacitor Android browser tests
199129
uses: reactivecircus/android-emulator-runner@v2.28.0
200130
with:
201131
api-level: 31
202132
target: google_apis
203133
arch: x86_64
204-
avd-name: $AVD_NAME
134+
avd-name: ${{ env.AVD_NAME }}
205135
script: |
136+
cd packages/capacitor
206137
pnpm exec vitest run --config vitest.config.ts
207138
force-avd-creation: false
208139
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none

0 commit comments

Comments
 (0)