Skip to content

Commit ff3295e

Browse files
committed
fix: save Android AVD cache after harness runs
1 parent 93726d8 commit ff3295e

4 files changed

Lines changed: 40 additions & 26 deletions

File tree

action.yml

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,6 @@ runs:
131131
~/.android/avd
132132
~/.android/adb*
133133
key: ${{ steps.avd-key.outputs.key }}
134-
- name: Save AVD cache
135-
if: ${{ always() && fromJson(steps.load-config.outputs.config).platformId == 'android' && fromJson(steps.load-config.outputs.config).config.device.type == 'emulator' && fromJson(steps.load-config.outputs.config).action.avdCachingEnabled && steps.avd-cache.outputs.cache-hit != 'true' }}
136-
uses: actions/cache/save@v4
137-
with:
138-
path: |
139-
~/.android/avd
140-
~/.android/adb*
141-
key: ${{ steps.avd-key.outputs.key }}
142-
143134
# ── Web ──────────────────────────────────────────────────────────────────
144135
- name: Install Playwright Browsers
145136
if: fromJson(steps.load-config.outputs.config).platformId == 'web'
@@ -228,6 +219,14 @@ runs:
228219
${{ steps.load-config.outputs.projectRoot }}/**/__image_snapshots__/**/*-diff.png
229220
${{ steps.load-config.outputs.projectRoot }}/**/__image_snapshots__/**/*-actual.png
230221
if-no-files-found: ignore
222+
- name: Save AVD cache
223+
if: ${{ always() && fromJson(steps.load-config.outputs.config).platformId == 'android' && fromJson(steps.load-config.outputs.config).config.device.type == 'emulator' && fromJson(steps.load-config.outputs.config).action.avdCachingEnabled && steps.avd-cache.outputs.cache-hit != 'true' }}
224+
uses: actions/cache/save@v4
225+
with:
226+
path: |
227+
~/.android/avd
228+
~/.android/adb*
229+
key: ${{ steps.avd-key.outputs.key }}
231230
- name: Upload crash report artifacts
232231
if: always()
233232
uses: actions/upload-artifact@v4

packages/github-action/src/action.yml

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,6 @@ runs:
131131
~/.android/avd
132132
~/.android/adb*
133133
key: ${{ steps.avd-key.outputs.key }}
134-
- name: Save AVD cache
135-
if: ${{ always() && fromJson(steps.load-config.outputs.config).platformId == 'android' && fromJson(steps.load-config.outputs.config).config.device.type == 'emulator' && fromJson(steps.load-config.outputs.config).action.avdCachingEnabled && steps.avd-cache.outputs.cache-hit != 'true' }}
136-
uses: actions/cache/save@v4
137-
with:
138-
path: |
139-
~/.android/avd
140-
~/.android/adb*
141-
key: ${{ steps.avd-key.outputs.key }}
142-
143134
# ── Web ──────────────────────────────────────────────────────────────────
144135
- name: Install Playwright Browsers
145136
if: fromJson(steps.load-config.outputs.config).platformId == 'web'
@@ -228,6 +219,14 @@ runs:
228219
${{ steps.load-config.outputs.projectRoot }}/**/__image_snapshots__/**/*-diff.png
229220
${{ steps.load-config.outputs.projectRoot }}/**/__image_snapshots__/**/*-actual.png
230221
if-no-files-found: ignore
222+
- name: Save AVD cache
223+
if: ${{ always() && fromJson(steps.load-config.outputs.config).platformId == 'android' && fromJson(steps.load-config.outputs.config).config.device.type == 'emulator' && fromJson(steps.load-config.outputs.config).action.avdCachingEnabled && steps.avd-cache.outputs.cache-hit != 'true' }}
224+
uses: actions/cache/save@v4
225+
with:
226+
path: |
227+
~/.android/avd
228+
~/.android/adb*
229+
key: ${{ steps.avd-key.outputs.key }}
231230
- name: Upload crash report artifacts
232231
if: always()
233232
uses: actions/upload-artifact@v4

packages/github-action/src/android/action.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,6 @@ runs:
105105
~/.android/avd
106106
~/.android/adb*
107107
key: ${{ steps.avd-key.outputs.key }}
108-
- name: Save AVD cache
109-
if: ${{ always() && fromJson(steps.load-config.outputs.config).config.device.type == 'emulator' && fromJson(steps.load-config.outputs.config).action.avdCachingEnabled && steps.avd-cache.outputs.cache-hit != 'true' }}
110-
uses: actions/cache/save@v4
111-
with:
112-
path: |
113-
~/.android/avd
114-
~/.android/adb*
115-
key: ${{ steps.avd-key.outputs.key }}
116108
- name: Detect Package Manager
117109
id: detect-pm
118110
shell: bash
@@ -165,6 +157,14 @@ runs:
165157
${{ inputs.projectRoot }}/**/__image_snapshots__/**/*-diff.png
166158
${{ inputs.projectRoot }}/**/__image_snapshots__/**/*-actual.png
167159
if-no-files-found: ignore
160+
- name: Save AVD cache
161+
if: ${{ always() && fromJson(steps.load-config.outputs.config).config.device.type == 'emulator' && fromJson(steps.load-config.outputs.config).action.avdCachingEnabled && steps.avd-cache.outputs.cache-hit != 'true' }}
162+
uses: actions/cache/save@v4
163+
with:
164+
path: |
165+
~/.android/avd
166+
~/.android/adb*
167+
key: ${{ steps.avd-key.outputs.key }}
168168
- name: Upload crash report artifacts
169169
if: always()
170170
uses: actions/upload-artifact@v4

packages/platform-android/src/__tests__/ci-action.test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,22 @@ describe('Android GitHub action config', () => {
4444
}
4545
});
4646

47+
it('saves the AVD cache after the Harness run step', async () => {
48+
const [rootAction, packageAction] = await Promise.all([
49+
readFile(path.join(workspaceRoot, 'action.yml'), 'utf8'),
50+
readFile(
51+
path.join(workspaceRoot, 'packages/github-action/src/action.yml'),
52+
'utf8'
53+
),
54+
]);
55+
56+
for (const actionYaml of [rootAction, packageAction]) {
57+
expect(actionYaml.indexOf('- name: Run E2E tests')).toBeLessThan(
58+
actionYaml.indexOf('- name: Save AVD cache')
59+
);
60+
}
61+
});
62+
4763
it('uses a cache key that includes the emulator name', async () => {
4864
const [rootAction, packageAction] = await Promise.all([
4965
readFile(path.join(workspaceRoot, 'action.yml'), 'utf8'),

0 commit comments

Comments
 (0)