ci(android): install libdbus, cache cargo and the staged libmpv

Every Android run since August failed in :app:buildRustHost: the host
build of pstr-android reaches libdbus-sys through keyring's Secret
Service store, and the runner had no libdbus-1-dev. With no successful
run, nothing was ever cached, so each run rebuilt from nothing.

- libdbus-1-dev in both jobs
- one shared, save-on-failure Rust cache for both jobs
- the staged libmpv tree cached on the build script's hash; the script
  stamps its output with the revision and its own hash and skips the
  libmpv build when the stamp matches

PLAN.md records the Android parity and UI work that follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
nvrlandClaude Opus 5.5 committed 2026-10-03 03:06:53 +02:00
1 parent 55ee412a1b
commit cf065fc5fe
3 files changed
+200 -4

No files matched your search

+34 -4
View File
@@ -94,8 +94,9 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends \
autoconf automake build-essential cmake curl git gperf libtool \
meson nasm ninja-build pkg-config python3 unzip wget xz-utils yasm
autoconf automake build-essential cmake curl git gperf libdbus-1-dev \
libtool meson nasm ninja-build pkg-config python3 unzip wget xz-utils \
yasm
- name: Install Android SDK and NDK
run: >-
@@ -109,7 +110,21 @@ jobs:
toolchain: '1.96'
targets: aarch64-linux-android,x86_64-linux-android
# One cache for both jobs: the signed build compiles the same crates for
# the same targets. Saved on failure too, so a run that breaks late does
# not throw away everything it compiled before the break.
- uses: Swatinem/rust-cache@v2.9.1
with:
shared-key: android
cache-on-failure: true
# libmpv and its dependency tree are the slowest part of the build, and
# depend only on the pinned revision and the build script, which stamps
# its output with both and skips the build when the stamp matches.
- uses: actions/cache@v6
with:
path: android/app/build/generated/mpv
key: libmpv-${{ hashFiles('scripts/build-libmpv-android.sh') }}
- uses: gradle/actions/setup-gradle@v4
with:
@@ -167,8 +182,9 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends \
autoconf automake build-essential cmake curl git gperf libtool \
meson nasm ninja-build pkg-config python3 unzip wget xz-utils yasm
autoconf automake build-essential cmake curl git gperf libdbus-1-dev \
libtool meson nasm ninja-build pkg-config python3 unzip wget xz-utils \
yasm
- name: Install Android SDK and NDK
run: >-
@@ -182,7 +198,21 @@ jobs:
toolchain: '1.96'
targets: aarch64-linux-android,x86_64-linux-android
# One cache for both jobs: the signed build compiles the same crates for
# the same targets. Saved on failure too, so a run that breaks late does
# not throw away everything it compiled before the break.
- uses: Swatinem/rust-cache@v2.9.1
with:
shared-key: android
cache-on-failure: true
# libmpv and its dependency tree are the slowest part of the build, and
# depend only on the pinned revision and the build script, which stamps
# its output with both and skips the build when the stamp matches.
- uses: actions/cache@v6
with:
path: android/app/build/generated/mpv
key: libmpv-${{ hashFiles('scripts/build-libmpv-android.sh') }}
- uses: gradle/actions/setup-gradle@v4
with: