tree 74ddc9c5f0ba73fb4dc4878a5669819f26b62e85
parent 44d1fcd659dacc6d700d36234a5160098203d8e3
author stuartmorgan <stuartmorgan@google.com> 1684786238 -0700
committer GitHub <noreply@github.com> 1684786238 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJka8w+CRBK7hj4Ov3rIwAAXOIIAEf4ZXi2bHhKoDIzb4Uvxk+a
 I042xvrvtkL6/1VXi2My1Z6XqpPcPa6kYSCMkbpEqqbUUgOg0rr7OmXIzvOQfrFZ
 0RS536u6ozVdcINUBqKuq+PisOYqoSrHlT0VuY1kpTd4D45REGptAH29tOyrOHU3
 IoQPf2W5Gnbpi5RY7xUQdqaZL0oW2Y7RFEa9geB2GOJoOEMzJ6TMAJ5pvIx2VaTE
 jGk4bwtyF9utIak2vC1oBeE3DC/XyJLm2oQZmLR3Pc2b6fKwDMmNoRnYC/GS5DGu
 czfEb0LUsXA/HCuwvvw5zzLl9QuQ2kKcRllMky+AKJu7PHkMN97Bt5gz9JnWNTI=
 =Vh9P
 -----END PGP SIGNATURE-----
 

[ci] Add a legacy Android build-all test (#4005)

Adds the ability to replace portions of the `flutter create`d app with saved copies, and adds a second build-all phase for Android that uses a Flutter 2.0.6-created `android/` directory (AGP 4.1, Gradle 6.7) to catch issues like https://github.com/flutter/flutter/issues/125621 and https://github.com/flutter/flutter/issues/125482 prior to release.

Includes some incidental cleanup:
- Extracts a helper method for adjusting files, so that this doesn't add even more copies of basically identical code.
    - (This was motivated by an earlier version of the PR that added modifications to several more files, which I ended up undoing, but the cleanup seemed worth keeping.)
- Adds missing unit test coverage.
- Reworks the unit tests to use a mock process manager and dummy files, instead of each test actually calling `flutter create`, which made each new test add several seconds to the unit test suite.
    - While this reduces the integration-style coverage, in practice the integration tests of the repo tooling is the CI itself, so the unit tests should be true unit tests.
- Changes the non-legacy test to Kotlin; we were still testing with Java even though Kotlin has been the default for quite a while, so we weren't testing what most new users would actually be running. Since we now have a legacy test, I used Java there to cover both.
- Removes some dead code for modifying the AndroidManifest.xml; when trying to set up unit tests for it I discovered that it no longer matches anything in an actual project. It dates back to the original command, and seems to have been a camera-related hack, which we clearly no longer need since it wasn't working and camera still works in build-all.

This is captured somewhat in the README in the legacy project directory, but to document the approach here: originally I was going to add flags to change individual items (AGP version, Gradle version), but quickly ran into the fact that selective downgrading is extremely fragile. E.g.,:
- The Kotlin version set in current projects doesn't work when downgrading AGP and Gradle.
- The app template can unconditionally use anything (e.g., `namespace`) that the AGP version it uses supports, so arbitrary future breakage is possible.

It's also less useful as a real test of what a plugin client's project likely looks like. Starting with a complete platform directory, and doing whatever the minimal changes are to keep it working, will likely reflect a common real-world scenario. On the flip side, the reason this doesn't use a complete 2.0.6 project, but instead is based on specific platform directories, is that we don't want to waste time manually maintaining, e.g., old Dart code that is irrelevant to the goal of the test. For now this only uses Android because that's where we've seen problems in practice, but we can alway add other legacy platform tests later if we find a need.

Fixes https://github.com/flutter/flutter/issues/125689