-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run Flutter framework tests against the web engine in Cirrus #16343
Conversation
.cirrus.yml
Outdated
@@ -80,6 +80,10 @@ task: | |||
test_framework_script: | | |||
cd $FRAMEWORK_PATH/flutter/packages/flutter | |||
../../bin/flutter test --local-engine=host_debug_unopt | |||
# Run Flutter framework tests against the web engine. | |||
test_framework_web_script: | | |||
cd $FRAMEWORK_PATH/flutter/packages/flutter |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shall we add this to LUCI instead since Godofredo is about to finish LUCI recipes :)
I think Linux Chrome already runs!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. I spoke with @godofredoc and for the time-being, we are continuing to use Cirrus until the end of Q1. So I think it's still worth adding these tests to Cirrus now.
d582777
to
53e9504
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
This change also highlights a problem with our infra: when we shard tests, each shard still needs to duplicate work, such as ninja -C out/host_debug_unopt
. That is in addition to the manual work that goes into configuring the shards. As far as I understand, LUCI is not fixing this problem. Sharding is still manual, and there's no build artifact sharing.
/cc @godofredoc @Hixie
Actually LUCI solves the duplication of work, it basically builds once, archive the artifacts to isolated and then multiple tasks can be triggered to execute the tests using the same build artifacts. |
Does it happen automatically? If you look at this PR's LUCI builds, this and this, the "build host_debug_unopt" was fully executed on both builds, taking 4-5 minutes. So perhaps LUCI can do it, but it doesn't for us. |
That is correct luci can optimize to that level but we need to tell it to do for us. For example for linux web engine we are planning to build host_debug_unopt once, archive to isolated and then trigger two tasks one for firefox and one for chrome using the same artifacts. For post submit we can optimize even more building once, archiving to gcs and then sharding all the tests using the gcs artifacts. |
@godofredoc this PR adds 8 new tasks to Cirrus. Are there any concerns regarding our Cirrus capacity? |
Since these are the exact same tests we already run on every PR in flutter/flutter, this should only add engine commit rate to the existing commit rate, so I expect the incremental cost is 10%-20%. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there is a way of creating task template in cirrus ci which might make this file a lot shorter: https://cirrus-ci.org/guide/tips-and-tricks/
Up to you, I never used it. I just saw it on their site.
9b1830d
to
5b1c35d
Compare
5b1c35d
to
576a103
Compare
* 71ec0a1 Relax timing restrictions on WakeUpTimersAreSingletons. (flutter/engine#16446) * 3ac1e6d Disable unit tests using --gtest-filter instead of at compile time (flutter/engine#16472) * 80be2c4 Fix RasterCache LRU logic, opportunistic simplifications. (flutter/engine#16434) * ca40f11 Roll src/third_party/skia 7f36405ea3ec..c0360582d211 (6 commits) (flutter/engine#16476) * c9e7713 Fix analyzer warnings for frontend_server change (flutter/engine#16470) * 9ada1b0 Fix elf_loader.cc on Fuchsia, add a TODO for proper fix * 0517627 Enable runtime_unittests on Fuchsia * 03f639e Add noexcept annotations to EnableValue moves (flutter/engine#16478) * 00904dd Various fixes in CanvasKit (flutter/engine#16433) * de7022b Roll src/third_party/skia c0360582d211..121750c2efff (7 commits) (flutter/engine#16479) * d2aab27 Enable shell_unittests on Fuchsia with Vulkan dependencies. (flutter/engine#16376) * eec73e3 Roll src/third_party/dart b3396cbdcae1..49850e6919f7 (45 commits) (flutter/engine#16480) * 557f3a2 Run Flutter framework tests against the web engine in Cirrus (flutter/engine#16343) * 477527b Roll src/third_party/skia 121750c2efff..046f9893b953 (4 commits) (flutter/engine#16482) * eb8691f Code cleanup on destructors (flutter/engine#16481) * 7397817 Roll fuchsia/sdk/core/linux-amd64 from A9STP... to g2s3c... (flutter/engine#16484) * 313527d Roll src/third_party/dart 49850e6919f7..16782e6c171f (16 commits) (flutter/engine#16485) * 83feaf4 Roll src/third_party/skia 046f9893b953..97bf6578796c (1 commits) (flutter/engine#16486) * 9184058 Roll src/third_party/skia 97bf6578796c..f3560b680e35 (1 commits) (flutter/engine#16487) * 0db017d Roll src/third_party/dart 16782e6c171f..d765d237460d (1 commits) (flutter/engine#16488) * f9ed07c Roll fuchsia/sdk/core/linux-amd64 from g2s3c... to LvSlH... (flutter/engine#16489) * a1b91da Roll src/third_party/skia f3560b680e35..77fdf66946d2 (1 commits) (flutter/engine#16490) * 7edb803 Roll src/third_party/dart d765d237460d..514a8d4c8417 (7 commits) (flutter/engine#16491) * 580503c Roll src/third_party/skia 77fdf66946d2..87e3bef6f82f (2 commits) (flutter/engine#16492)
…lutter#16343)" This reverts commit 9d579ce.
I got bit multiple times because flutter tests currently don't run against the web engine in Cirrus (#16268, #14569).
These sort of mistakes could potentially be avoided too: