The Wire · Showcase
Android CI tightens the net
By RepoJournal · Filed · About .NET
The .NET Android team is hardening the deployment pipeline, and skipping unchanged framework assemblies could be the biggest win you're not expecting.
The .NET Android team shipped a batch of CI and tooling fixes aimed at making builds faster and deployments cleaner. The FastDeploy2 cleanup [1] [2] now strips orphaned staging directories after every successful APK install, and it fails closed on malformed `pm` output, which means you won't get subtle state corruption from a half-dead cleanup step. For Debug/no-shrink builds, unchanged framework assemblies are now packaged straight from their runtime-pack locations, skipping Cecil processing and project-local copies [3]. That cuts I/O significantly on clean MAUI Debug builds, though the PR notes Mono.Android and Java.Interop still go through full processing. On the testing side, a new Helix job builds and runs a MAUI template with CoreCLR full ReadyToRun for android-arm [4], closing the coverage gap for that configuration. Meanwhile, API 37.1 gets stabilized and enumified via BindingStudio [5], which sets the groundwork for consuming the latest Android SDK binding. The dotnet tool version in MAUI also moves from 10.0.108 to 10.0.111 [6] [7], a routine bump but worth noting if you're pinning exact SDK versions. Across the three repos, 17 commits and 19 PRs landed, most of them codeflow updates pulling in changes from arcade, nuget.client, roslyn, and fsharp into the monorepo [8] [9] [10] [11]. The runtime PR [12] appears to be a straightforward main merge, so nothing to panic about there. Skip the noise and focus on the deployment pipeline fixes.
One email a day. Unsubscribe in one click.
Keep up with .NET in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Rebuild your MAUI Debug targets with the latest dotnet/maui to verify the framework assembly packaging change doesn't break your incremental builds dotnet/maui [plan]
- → Watch the FastDeploy2 cleanup behavior on your test devices; if you rely on manual staging paths, make sure they aren't symlinked dotnet/android [monitor]
- → Prepare for the API-37.1 binding update if you target the newest Android SDK; validate your binding usage against the new enum mappings dotnet/android [plan]
References
- [1] [FastDeploy2] Clean orphan staging files ↗ dotnet/android
- [2] [FastDeploy2] Clean orphan staging files (#12310) dotnet/android
- [3] [build] Avoid staging unchanged framework assemblies ↗ dotnet/android
- [4] [ci] Add MAUI full R2R android-arm Helix test ↗ dotnet/android
- [5] [Mono.Android] Enumify, stabilize API-37.1 ↗ dotnet/android
- [6] Update dotnet version from 10.0.108 to 10.0.111 ↗ dotnet/maui
- [7] Update dotnet version from 10.0.108 to 10.0.111 (#37721) dotnet/maui
- [8] [main] Source code updates from dotnet/arcade ↗ dotnet/dotnet
- [9] [main] Source code updates from nuget/nuget.client ↗ dotnet/dotnet
- [10] [main] Source code updates from dotnet/roslyn ↗ dotnet/dotnet
- [11] [main] Source code updates from dotnet/fsharp ↗ dotnet/dotnet
- [12] FF main runtime ↗ dotnet/dotnet