Commit Graph

3 Commits

Author SHA1 Message Date
Zoltan Papp c85852eabf ci: stream adb logcat alongside the screen recording
Save threadtime-format logcat to screen-recordings/logcat.log in the
background, in parallel with the screenrecord loop, and stop it after
the test exits. The existing screen-recordings/ artifact upload picks
it up automatically.
2026-05-10 22:23:35 +02:00
Zoltan Papp 173fd62e58 ci: fix cache path resolution and screenrecord loop race
The ${{ env.ANDROID_HOME }} expression resolves against workflow-level
env, not the runner's process environment, so the NDK and AVD system-
image cache paths came out empty-prefixed and the saves were dropped
with "Path Validation Error". Hardcode the ubuntu-latest sdk path
(/usr/local/lib/android/sdk) for both.

Also fix the screen recording: touch the sentinel file BEFORE launching
the background loop, otherwise the loop sees no file on its first
iteration and exits immediately, producing zero recordings.
2026-05-10 22:12:10 +02:00
Zoltan Papp 3692291d06 ci: cache NDK/gomobile/AVD and move test runner to a script
- setup-go: point cache-dependency-path to netbird/go.sum so the Go
  module cache actually restores (build-android-lib.sh shaves ~1-2 min).
- Cache the NDK install dir and the gomobile binary by pinned version,
  skipping the corresponding install step on cache hit.
- Cache the AVD plus the API 30 google_apis x86_64 system image, add a
  warm-up step that boots once to capture a snapshot, and run tests with
  force-avd-creation=false plus -no-snapshot-save so subsequent jobs
  load the cached snapshot without overwriting it.
- Move the screenrecord/gradle/pull pipeline to
  .github/scripts/run-instrumented-tests.sh because the emulator-runner
  action executes each line of the inline script as a separate sh -c,
  which broke the multi-line subshell loop.
2026-05-10 21:57:46 +02:00