Android-emulator
Android-emulator CI op GitHub Actions
Instrumentatietests duren 40 minuten omdat de emulator in software draait.
4m → 25s
Emulator opstarten
40m → 9m
Testsuite
Instrumentatietests duren 40 minuten omdat de emulator in software draait.
Waarom het gebeurt
Zonder /dev/kvm valt de emulator terug op softwarerendering, wat grofweg tien keer langzamer is.
Wat te veranderen
- Draai op een hardloper die KVM blootstelt aan de taak
- Cache de AVD-snapshot zodat de emulator warm opstart
- Gebruik waar mogelijk een headless systeemimage zonder Google Play-services
- Shard-instrumentatietests voor verschillende emulatorinstanties
Android-emulator op runnerhut
yaml
jobs: instrumentation: runs-on: runnerhut-8vcpu-ubuntu-2404 steps: - uses: actions/checkout@v4 - run: ls -l /dev/kvm - uses: reactivecircus/android-emulator-runner@v2 with: api-level: 34 arch: x86_64 script: ./gradlew connectedDebugAndroidTestDe enige runnerhut-specifieke regel is `runs-on: runnerhut-8vcpu-ubuntu-2404`. Al het andere is standaard GitHub Actions — dezelfde acties, dezelfde geheimen en hetzelfde machtigingsmodel dat u vandaag de dag gebruikt.
Je volgende build kan twee keer zo snel zijn, voor de halve prijs
Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.
Gerelateerd
Reageer inheemsElke build compileert de native iOS- en Android-afhankelijkheden opnieuw vanaf de bron.iOSXcode wordt vanuit het niets opgebouwd en code-ondertekening is kwetsbaar in CI.AndroidGradle lost afhankelijkheden opnieuw op en de emulator heeft geen hardwareversnelling.FladderenDe Flutter SDK en pubcache worden bij elke run en voor elk platform gedownload.