[Fix] (ci): split APK retrace validation steps

This commit is contained in:
2026-06-16 17:54:40 +08:00
parent 527ef9653a
commit 565649e3b6
2 changed files with 74 additions and 51 deletions
+58 -9
View File
@@ -123,7 +123,7 @@ jobs:
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Test retrace APK on Android AVD
- name: Retrace and validate Espryt (DirectGLES)
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 35
@@ -133,8 +133,11 @@ jobs:
disable-animations: true
emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim -camera-back none -camera-front none
script: >-
set +e;
sh android-plugin/trace-replay-ci.sh
--apk-dir android-retrace-apks
--apk-file "$(find android-retrace-apks -name 'MobileGL-EsprytTrace-release.apk' -print -quit)"
--package top.mobilegl.plugin.espryt.trace
--backend DirectGLES
--result-root android-retrace-result
--fixture-root android-retrace-fixture
--case minecraft-1.21.4-startup
@@ -150,13 +153,48 @@ jobs:
--crop-width 0
--crop-height 0
--fuzz-percent 20
--timeout-seconds 180
--espryt-package top.mobilegl.plugin.espryt.trace
--espryt-apk-name MobileGL-EsprytTrace-release.apk
--espryt-backend DirectGLES
--magma-package top.mobilegl.plugin.magma.trace
--magma-apk-name MobileGL-MagmaTrace-release.apk
--magma-backend DirectVulkan
--timeout-seconds 180;
status=$?;
mkdir -p android-retrace-result/status;
echo "${status}" > android-retrace-result/status/DirectGLES.status;
exit 0
- name: Retrace and validate Magma (DirectVulkan)
if: always()
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 35
target: google_apis
arch: x86_64
profile: pixel_6
disable-animations: true
emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim -camera-back none -camera-front none
script: >-
set +e;
sh android-plugin/trace-replay-ci.sh
--apk-file "$(find android-retrace-apks -name 'MobileGL-MagmaTrace-release.apk' -print -quit)"
--package top.mobilegl.plugin.magma.trace
--backend DirectVulkan
--result-root android-retrace-result
--fixture-root android-retrace-fixture
--case minecraft-1.21.4-startup
--trace-archive tools/trace_replay/fixtures/minecraft-1.21.4-startup.tgz
--trace-file trace.trace
--golden tools/trace_replay/fixtures/minecraft-1.21.4-startup.0000092195.png
--target-call 92195
--width 854
--height 480
--tolerance 20
--crop-x 0
--crop-y 0
--crop-width 0
--crop-height 0
--fuzz-percent 20
--timeout-seconds 180;
status=$?;
mkdir -p android-retrace-result/status;
echo "${status}" > android-retrace-result/status/DirectVulkan.status;
exit 0
- name: Upload Android retrace result
if: always()
@@ -165,3 +203,14 @@ jobs:
name: MobileGL-android-retrace-result-${{ env.date_today }}-${{ env.short_sha }}
path: android-retrace-result/**
if-no-files-found: warn
- name: Check Android retrace results
if: always()
run: |
direct_gles_status="$(cat android-retrace-result/status/DirectGLES.status 2>/dev/null || echo 1)"
direct_vulkan_status="$(cat android-retrace-result/status/DirectVulkan.status 2>/dev/null || echo 1)"
echo "DirectGLES status: ${direct_gles_status}"
echo "DirectVulkan status: ${direct_vulkan_status}"
if [ "${direct_gles_status}" -ne 0 ] || [ "${direct_vulkan_status}" -ne 0 ]; then
exit 1
fi