Skip to content

Conversation

jmagman
Copy link
Member

@jmagman jmagman commented May 7, 2020

Description

Split firebase_test_lab_tests into 3 shards, one per integration test.

Related Issues

Fixes #56590

Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I signed the [CLA].
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I updated/added relevant documentation (doc comments with ///).
  • All existing and new tests are passing.
  • The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
  • I am willing to follow-up on review comments in a timely manner.

Breaking Change

  • No, no existing tests failed, so this is not a breaking change.
  • Yes, this is a breaking change. If not, delete the remainder of this section.

@jmagman jmagman self-assigned this May 7, 2020
@jmagman
Copy link
Member Author

jmagman commented May 7, 2020

Previous to this change, the firebase tests took ~35 minutes. With this change:
firebase_lab_release_smoke_test: 16:38
firebase_lab_abstract_method_smoke_test: 19:36
firebase_lab_android_embedding_v2_smoke_test: 16:43
Screen Shot 2020-05-07 at 2 33 43 PM

@jmagman jmagman marked this pull request as ready for review May 7, 2020 21:37
@jmagman jmagman requested a review from Hixie May 7, 2020 21:38
.cirrus.yml Outdated
Copy link
Contributor

Choose a reason for hiding this comment

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

please don't do it this way -- just use the same style the rest of the file does
we're trying to keep this file to as rigorously simple a style as we can

Copy link
Member Author

Choose a reason for hiding this comment

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

Are you referring to adding a SHARD_TEMPLATE for the environment or pushing the shard numbers down into the test?

Copy link
Contributor

Choose a reason for hiding this comment

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

i mean using matrix

Copy link
Contributor

Choose a reason for hiding this comment

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

it might be a good idea to move this to test.dart rather than having its own separate shell script.

Copy link
Member Author

Choose a reason for hiding this comment

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

Indeed that would be better. I split the difference and dumbed down .cirrus.yml and pushed the subshard -> test logic into test.dart. firebase_testlab.sh still lives, though.

@jmagman jmagman added the c: contributor-productivity Team-specific productivity, code health, technical debt. label May 8, 2020
@jmagman
Copy link
Member Author

jmagman commented May 8, 2020

Screen Shot 2020-05-07 at 5 25 43 PM

.cirrus.yml Outdated
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd really much rather we just duplicate all the text. i think the burden on people who look at this file without knowing Yaml's more obscure features is going to be much greater than the burden on people who have to deal with duplicated text.

Copy link
Member Author

Choose a reason for hiding this comment

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

just use the same style the rest of the file

Would you prefer #50306 be reverted? I would guess so based on #50306 (comment).

Copy link
Contributor

Choose a reason for hiding this comment

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

Well, that does end up saving a lot of duplication, huh...

Ok, so long as we have just the one mechanism for doing this, I'm good. The syntax you use here is exactly the same as in #50306?

Copy link
Member Author

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

It might make sense to do the trick we use elsewhere that verifies that the right number of shards are actually given (by having the last shard be named something like 5_last or something, I forget exactly how we do it).

Up to you.

Copy link
Contributor

@Hixie Hixie left a comment

Choose a reason for hiding this comment

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

LGTM

If you want real bonus points, maybe add a comment at the top of the file explaining the dark magic? :-)

@jmagman jmagman merged commit 3cb04ff into flutter:master May 8, 2020
@jmagman jmagman deleted the firebase-shard branch May 8, 2020 23:32
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 31, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

c: contributor-productivity Team-specific productivity, code health, technical debt.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Speed up firebase_testlab Cirrus tests

3 participants