Skip to content

Skip redundant work in plugin_test_* - #196258

Merged
auto-submit[bot] merged 3 commits into
flutter:masterfrom
jmagman:plugin-test-ios-dedupe
Nov 11, 2026
Merged

auto-submit[bot] merged 3 commits into
flutter:masterfrom
jmagman:plugin-test-ios-dedupe

Conversation

@jmagman

@jmagman jmagman commented Nov 10, 2026 •

Copy link
Copy Markdown
Member
  1. Mac plugin_test_ios takes ~22 minutes. 12 of the task's 20 minutes are the "Test plugin" phase run twice. The cocoapodsTransitiveFlutterDependency variant creates and tests the same plugin as the first variant (unit tests, native tests, flutter run on a simulator) before getting to the app that differs. Add a testPlugin flag and turn it off there.

  2. runNativeTests also did a full flutter build before xcodebuild test / gradlew testDebugUnitTest, both of which compile the app themselves. Only the project configuration is needed, so use --config-only on iOS, macOS and Android. Linux and Windows run a test binary from build/ and keep the full build so keep those as-is.

Expected: plugin_test_ios ~22 → ~15 min, plugin_test_darwin ~16 → ~14, plugin_test_android_standard ~12 → ~9.

Part of #193513

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

The CocoaPods-transitive-dependency variant creates and tests the same
plugin as the first variant (unit tests, native tests, flutter run on a
simulator) before getting to the app that differs. Add a testPlugin flag
and turn it off there.

runNativeTests did a full flutter build before xcodebuild test or
gradlew testDebugUnitTest, both of which compile the app themselves.
Only the project configuration is needed, so use --config-only on iOS,
macOS, and Android. Linux and Windows run a test binary from the build
directory and keep the full build. This also applies to
plugin_test_darwin, plugin_test_macos, and plugin_test_android_*.

Part of flutter#193513
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Nov 10, 2026
});
if (!runResult) {
return TaskResult.failure('flutter run either failed or had an engine error.');
if (testPlugin) {

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Everything after the if is whitespace-only change.

@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 introduces a 'testPlugin' configuration option (defaulting to true) to the 'PluginTest' class in the Flutter devicelab, allowing tests to bypass testing the plugin itself before building the consuming app. This option is set to false for the iOS transitive dependency test. Additionally, the 'runNativeTests' method is updated to only perform a full build for Linux and Windows targets, using a configuration-only build for other platforms. There are no review comments, and I have no feedback to provide.

@jmagman
jmagman requested a review from hellohuanlin November 10, 2026 06:45
hellohuanlin
hellohuanlin previously approved these changes Nov 10, 2026
'--platforms=ios',
], cocoapodsTransitiveFlutterDependency: true).call,
// Test that app builds with Flutter as a transitive dependency. The
// plugin is the same as above.

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.

nit: ...as above, so no need to test again

@jmagman jmagman added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 10, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Nov 11, 2026
Merged via the queue into flutter:master with commit 6b7a6b3 Nov 11, 2026
21 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Nov 11, 2026
@jmagman
jmagman deleted the plugin-test-ios-dedupe branch November 11, 2026 06:22
@jmagman jmagman mentioned this pull request Nov 11, 2026
4 tasks
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Nov 11, 2026
flutter/flutter@fffd8c2...b98afb5

2026-11-11 [email protected] Roll Dart SDK from 172cf8f121c0 to 8f15c4ca2d41 (1 revision) (flutter/flutter#196367)
2026-11-11 [email protected] Roll Skia from 657283e78115 to cc4c54f752ba (5 revisions) (flutter/flutter#196365)
2026-11-11 [email protected] Roll Skia from 2605c4a9761c to 657283e78115 (1 revision) (flutter/flutter#196358)
2026-11-11 [email protected] Roll Dart SDK from 890c6d15334c to 172cf8f121c0 (1 revision) (flutter/flutter#196352)
2026-11-11 [email protected] [flutter_tools] Migrate general.shard project, runner, and web tests off globals (flutter/flutter#196128)
2026-11-11 [email protected] [flutter_tools] Migrate test helpers and integration tests off globals (flutter/flutter#196124)
2026-11-11 [email protected] [web] Report skwasm WebGL context creation failure instead of hanging (flutter/flutter#193293)
2026-11-11 [email protected] [flutter_tools] Migrate commands.shard tests off globals (flutter/flutter#196139)
2026-11-11 [email protected] [devicelab] Fix memory benchmark tap synchronization and swipe flakes (flutter/flutter#194457)
2026-11-11 [email protected] Roll Skia from 06062e36d938 to 2605c4a9761c (2 revisions) (flutter/flutter#196350)
2026-11-11 [email protected] Do not wait again for a closed mock event stream in tear down (flutter/flutter#196110)
2026-11-11 [email protected] [gen_l10n] Add `use-explicit-plural-values` option (flutter/flutter#194816)
2026-11-11 [email protected] Roll Skia from 7bd33f8a3b70 to 06062e36d938 (2 revisions) (flutter/flutter#196340)
2026-11-11 [email protected] Skip redundant work in plugin_test_* (flutter/flutter#196258)
2026-11-10 [email protected] Drop test_timeout_secs from shards that no longer need it (flutter/flutter#196277)
2026-11-10 [email protected] Roll Dart SDK from 15c1699d3eeb to 890c6d15334c (1 revision) (flutter/flutter#196321)
2026-11-10 [email protected] iOS: Extract FlutterPlatformViewsController platform-thread state to Obj-C (flutter/flutter#196142)
2026-11-10 [email protected] Remove `Mac web_tool_tests` and take new subshard builders out of bringup (flutter/flutter#196276)
2026-11-10 [email protected] Roll Skia from 9c3d43d8a04b to 7bd33f8a3b70 (12 revisions) (flutter/flutter#196317)
2026-11-10 [email protected] Take customer_testing_devtools out of bringup (flutter/flutter#196239)
2026-11-10 [email protected] Roll ICU from a0ea93436c52 to b09986242cfb (1 revision) (flutter/flutter#196316)
2026-11-10 [email protected] [flutter_tools] Avoid unlinking native_assets.json and handle EXDEV (flutter/flutter#196134)
2026-11-10 [email protected] Remove old `Windows tool_integration_tests` builders and take the new shards out of bringup (flutter/flutter#196275)
2026-11-10 [email protected] [SwiftPM] Disable tests for when settings fail to compile (flutter/flutter#196310)
2026-11-10 [email protected] Roll Fuchsia Test Scripts from PXc5D7S_q6sIYpfFJ... to oEU515sDqSTvD8Spx... (flutter/flutter#196289)
2026-11-10 [email protected] Fix ime insets animation jump (flutter/flutter#191453)
2026-11-10 [email protected] Link to original PR in automatic cherry-pick PRs (flutter/flutter#196130)
2026-11-10 [email protected] Roll Packages from 565c657 to 08faf64 (9 revisions) (flutter/flutter#196296)
2026-11-10 [email protected] Roll Skia from b11315d0a096 to 9c3d43d8a04b (45 revisions) (flutter/flutter#196295)
2026-11-10 [email protected] Replace type-specific window widgets with a single Window widget (flutter/flutter#196002)
2026-11-10 [email protected] Roll Dart SDK from a2baae273bb2 to 15c1699d3eeb (2 revisions) (flutter/flutter#196294)

If this roll has caused a breakage, revert this CL and set the roller
to dry run mode using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
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.

2 participants