Skip to content

Add platform_views_layout to build_tests so iOS/Android build breaks are caught in presubmit - #192985

Merged
auto-submit[bot] merged 2 commits into
flutter:masterfrom
okorohelijah:fix/build-tests-platform-views-layout
Nov 5, 2026
Merged

auto-submit[bot] merged 2 commits into
flutter:masterfrom
okorohelijah:fix/build-tests-platform-views-layout

Conversation

@okorohelijah

@okorohelijah okorohelijah commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

dev/benchmarks/platform_views_layout is only ever built by post-submit devicelab benchmarks (Mac_ios platform_views_scroll_perf_* and Linux_pixel_7pro/Linux_mokey platform_views_scroll_perf*). It is also the only app in the repo that depends on the google_mobile_ads plugin, so a change that breaks native plugin integration for that app is invisible to presubmit.

That is exactly what happened with #185431 (Xcode 26.2 / iOS 26 CI upgrade): the GoogleMobileAds xcframework failed to link (missing __swift_FORCE_LOAD_$_swiftCompatibility* and libc++ symbols) only in the post-submit Mac_ios platform_views_scroll_perf_* devicelab tasks (#185510), and the PR had to be reverted (#185513) before being fixed by enabling SwiftPM for the plugin (#185548). Building this app in the build_tests shard would have surfaced the failure on the presubmit Mac_arm64 build_tests_* builders instead.

This PR adds the directory to exampleDirectories in _runBuildTests (dev/bots/test.dart). _runExampleProjectBuildTests only builds platforms whose project folder exists, so concretely this adds:

Host Commands added
Linux / Mac / Windows build_tests_* flutter build apk --debug -v, flutter build apk --release -v
Mac build_tests_* only flutter build ios --no-codesign --debug -v, flutter build ios --no-codesign --release -v

No web / macOS / Linux / Windows desktop build is attempted (the app has no such folders, and the shard prints e.g. has no linux directory, skipping Linux — verified with --dry-run).

Sub-sharding is {index}_{total} driven by the SUBSHARD env var and the test list is shuffled with a fixed seed, so no .ci.yaml change is needed. The build_tests test count goes from 27 → 28 across 5 subshards (Linux/Mac) and 9 (Windows); the new entry lands in 4_5 on Linux with the current seed.

With the help of Gemini

Fixes #185538

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the AI contribution guidelines and understand my responsibilities, or I am not using AI tools.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
  • I signed the CLA.
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant in-code documentation (doc comments with ///). (N/A — added an inline // comment explaining why the entry exists; no public API touched.)
  • If this PR introduces a new feature or capability, I created and linked a website documentation issue or PR in flutter/website (or verified none is needed). (Verified none is needed — CI-only change.)
  • I added new tests to check the change I am making, or this PR is test-exempt. (test-exempt: this is a CI configuration change to dev/bots/test.dart; the change is exercised directly by the Linux/Mac/Windows build_tests_* presubmit builders on this very PR.)
  • I followed the breaking change policy and added Data Driven Fixes where supported. (Not a breaking change.)
  • All existing and new tests are passing. (Pending CI — see "Verification" below for what was run locally.)

…are caught in presubmit

dev/benchmarks/platform_views_layout is only ever built by post-submit
devicelab benchmarks (platform_views_scroll_perf_* on Mac_ios and
Linux_pixel_7pro/Linux_mokey). It is the only app in the repo that depends
on the google_mobile_ads plugin, so a change that breaks native plugin
integration for that app is invisible to presubmit.

That is exactly what happened with flutter#185431 (Xcode 26.2 /
iOS 26 CI upgrade): the GoogleMobileAds xcframework failed to link
(missing Swift compatibility and libc++ symbols) only in the post-submit
Mac_ios platform_views_scroll_perf_* devicelab tasks (flutter#185510),
and the PR had to be reverted (flutter#185513). Building this app in
the build_tests shard would have surfaced the failure on the presubmit
Mac_arm64 build_tests_* builders.

_runExampleProjectBuildTests only builds platforms whose project folder
exists, so this adds:

  * Linux/Mac/Windows: flutter build apk --debug / --release
  * Mac only:          flutter build ios --no-codesign --debug / --release

No web/macos/linux/windows build is attempted (those folders do not exist).
Subshards are index/total driven from the SUBSHARD environment variable, so
no .ci.yaml change is required; the test count goes from 27 to 28 across
5 subshards.

platform_views_layout_hybrid_composition is intentionally NOT added: it has
no plugin dependencies, its iOS project is not built anywhere in CI today,
and the risk that motivated this change is specific to google_mobile_ads.

Fixes flutter#185538
@okorohelijah
okorohelijah marked this pull request as ready for review October 21, 2026 13:05

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds the platform_views_layout benchmark directory to the build tests in dev/bots/test.dart to exercise native plugin integration. There are no review comments, and I have no feedback to provide.

@Piinks Piinks added platform-android Android applications specifically platform-ios iOS applications specifically labels Oct 26, 2026
@vashworth vashworth added the CICD Run CI/CD label Oct 29, 2026
@github-actions github-actions Bot removed platform-android Android applications specifically platform-ios iOS applications specifically labels Oct 29, 2026
@vashworth vashworth added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 5, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Nov 5, 2026
Merged via the queue into flutter:master with commit 8b5cfe1 Nov 5, 2026
23 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Nov 5, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Nov 6, 2026
Roll Flutter from 3623d2d34543 to 09175cdeac89 (61 revisions)

flutter/flutter@3623d2d...09175cd

2026-11-06 [email protected] Roll Skia from ae35b7b2221f to 793b8ac73d4b (3 revisions) (flutter/flutter#196091)
2026-11-06 [email protected] [web] Rasterize scenes at the size passed to `FlutterView.render` (flutter/flutter#196052)
2026-11-06 [email protected] Roll Skia from 4aa043a81e0c to ae35b7b2221f (1 revision) (flutter/flutter#196086)
2026-11-06 [email protected] Roll Fuchsia Linux SDK from Fqe3UlLwAohsPbsCS... to KIc0XZbhLmvDpTluZ... (flutter/flutter#196085)
2026-11-06 [email protected] Allow a zero scale change in InteractiveViewer (flutter/flutter#194949)
2026-11-06 [email protected] Roll Skia from dd5c2553a856 to 4aa043a81e0c (2 revisions) (flutter/flutter#196079)
2026-11-06 [email protected] [web] Keep ImageFilter.blur bounds in equality and description (flutter/flutter#196013)
2026-11-06 [email protected] iOS: Remove unused PlatformViewIOS setup from FlutterPlatformViewsTest (flutter/flutter#196033)
2026-11-06 [email protected] Serialize LoggerTests that mutate the shared Logger (flutter/flutter#196028)
2026-11-06 [email protected] Use reverseDuration for the AnimatedCrossFade size animation (flutter/flutter#194860)
2026-11-05 [email protected] Roll Skia from a5aacd103e68 to dd5c2553a856 (8 revisions) (flutter/flutter#196073)
2026-11-05 [email protected] Fix ListWheelScrollView null check error when it reads itemIndex before content dimensions are set (flutter/flutter#194859)
2026-11-05 [email protected] Allow zero cross axis extent in SliverGridDelegateWithMaxCrossAxisExtent (flutter/flutter#194858)
2026-11-05 [email protected] Revert: Allow color delta tolerance in in-memory fuzzy image comparator (flutter/flutter#196067)
2026-11-05 [email protected] Revert: Mitigate snapshot race in 3D transform test by reducing loop density (flutter/flutter#196066)
2026-11-05 [email protected] Delegate createStream in ResizeImage and ScrollAwareImageProvider (flutter/flutter#194756)
2026-11-05 [email protected] [iOS] Introduce FlutterShell and move thread host and profiler (flutter/flutter#195388)
2026-11-05 [email protected] [web] Support FragmentShader.getImageSampler on CanvasKit and Skwasm (flutter/flutter#195854)
2026-11-05 [email protected] Deprecates setFloat API (flutter/flutter#195505)
2026-11-05 [email protected] [flutter_tools] Remove public GlobalToolContext and globals from runner (flutter/flutter#195561)
2026-11-05 [email protected] Defer TLHC PlatformViewWrapper frame post and avoid initial 1x1 buffer resize (flutter/flutter#195861)
2026-11-05 [email protected] Roll Skia from b5abed66da86 to a5aacd103e68 (17 revisions) (flutter/flutter#196054)
2026-11-05 [email protected] Made `FlutterWindowControllerSizeTest.SizedToContentNotResizable` more robust (flutter/flutter#195845)
2026-11-05 [email protected] Update docs for contributor ladder (flutter/flutter#196011)
2026-11-05 [email protected] [Impeller] Use the transfer stage for the Vulkan readback barrier (flutter/flutter#194991)
2026-11-05 [email protected] Remove Mac mac_unopt builder (flutter/flutter#196027)
2026-11-05 [email protected] Updated Instructions for Determining Gradle Version for `gradle_dists` in CIPD (flutter/flutter#193310)
2026-11-05 [email protected] Move ios_app_with_extensions_test into the tool integration shard (flutter/flutter#195609)
2026-11-05 [email protected] [web] Respect Uint8List view bounds when detecting animated WebP/GIF (flutter/flutter#196010)
2026-11-05 [email protected] Add platform_views_layout to build_tests so iOS/Android build breaks are caught in presubmit (flutter/flutter#192985)
2026-11-05 [email protected] [flutter_tools] Detect macOS TCC permission crashes and provide diagnostic guidance (flutter/flutter#192432)
2026-11-05 [email protected] Roll Packages from 670b30e to 0478162 (15 revisions) (flutter/flutter#196047)
2026-11-05 [email protected] [web] Support Skwasm rendering without bitmap capture (flutter/flutter#195103)
2026-11-05 [email protected] [flutter_tools] Reland fix for local CanvasKit asset paths on Windows (flutter/flutter#195770)
2026-11-05 [email protected] Roll Skia from f96be51af95d to b5abed66da86 (14 revisions) (flutter/flutter#196017)
2026-11-05 [email protected] Split chrome web engine test drone (flutter/flutter#195873)
2026-11-05 [email protected] Roll Dart SDK from c9153304136a to 6623b84628f3 (1 revision) (flutter/flutter#196026)
2026-11-05 [email protected] Roll ICU from 4fe960221710 to a0ea93436c52 (6 revisions) (flutter/flutter#196025)
2026-11-05 [email protected] Add more guidance in README and AGENTS for contributing to flutter_tools (flutter/flutter#195998)
2026-11-05 [email protected] Roll Fuchsia Linux SDK from p0HDXLISPIElJfSz7... to Fqe3UlLwAohsPbsCS... (flutter/flutter#196019)
2026-11-05 [email protected] Roll Dart SDK from e362a23e9738 to c9153304136a (18 revisions) (flutter/flutter#196014)
2026-11-05 [email protected] [Impeller] Fix dilation input bounds when clipping saveLayers (flutter/flutter#195652)
2026-11-05 [email protected] Add `variantOf` to the M3E migration checklist (flutter/flutter#195099)
2026-11-05 [email protected] [flutter_tools] Eliminate globals from remaining subsystem files (flutter/flutter#195555)
2026-11-05 [email protected] Fix gap flipping when dragging variable height reorderable items (flutter/flutter#194478)
2026-11-05 [email protected] [A11y] Send un-merged SemanticsNodes in the same update that first references them (flutter/flutter#195829)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

platform_views_layout is not building presubmit, build failures only caught in postsubmit

3 participants