-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Pre-Submit Tryjobs for Flutter Gold #44474
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
Conversation
|
I'll have to make a framework change to actually trigger a framework test and see that this works... looking for a typo or something similar... |
| /// behavior. | ||
| /// we reduce the duration and the corresponding number of frames for | ||
| /// animations. This enum is used to allow certain [AnimationController]s to opt | ||
| /// out of this behavior. |
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.
This change is a trivial 80 character line limit correction in keeping with the style guide, and to also trigger the relevant framework tests confirming tryjob execution.
|
It looks like this is a bit flaky.
The tryjob did show up on the dashboard here: https://flutter-gold.skia.org/changelists?page_size=50 |
|
Around 22:07 UTC (last night), I see from the ingestion logs that files were uploaded to the right place and processed.
From that conclusion, data is (mostly) getting into Gold successfully. The 404 is due to the frontend not linking properly to GitHub. If you click Triage that takes you to a page that should show the TryJobResults, but isn't - I'm investigating that. |
|
Ah, the data in Firestore is slightly wrong - the TryJob and TryJobResults are incorrectly tagged as being "gerrit" |
| final File keys = workDirectory.childFile('keys.json'); | ||
| final File failures = workDirectory.childFile('failures.json'); |
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.
Is workDirectory in source control? Should we be putting this in some kind of temp directory that gets blown away after CI is done?
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.
If I'm reading this right, it's coming from https://github.com/flutter/flutter/pull/44474/files#diff-259a52e89a62c0e0633f88f4307c22b7L142, which is not tracked by source control - is that right?
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.
Is workDirectory in source control?
I am not sure what you mean by this.
I thought it was automatically blown away on ci since we start with a clean instance for each build. I can split it out further for ci/non-ci code paths, but I thought this would keep it from becoming a more complicated code path for those cases.
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.
Yeah this should be fine. I was worried we were modifying something that the Flutter source control cared about with this.
| /// The optional [suffix] argument is used by the | ||
| /// [FlutterSkiaGoldFileComparator] and the [FlutterPreSubmitFileComparator]. | ||
| /// These [FlutterGoldenFileComparators] randomize their base directories to | ||
| /// maintain thread safety while using the `goldctl` tool. |
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.
Why aren't we just using createTempSync from package:file?
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.
When run locally, we want the files to be accessible to see diffs etc.
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.
Ahh. I'm a bit curious about whether we'd hit collisions at some point using math.random, but it's probably fine.
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 thought so too, but then realized we only run 2-3 processes concurrently on ci, and only ~130/~4500 tests are golden file tests, so I feel like a collision would be incredibly rare in how this is written.
dnfield
left a comment
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
|
Thanks for the review @dnfield! I just need to update the wiki and this will be ready to go. |
|
This pull request is not suitable for automatic merging in its current state.
|
@dnfield I haven't seen this before. What does it mean? |
|
It's a bug :( It'ssupposed to be checking for reviews and refuse to merge if there are open change requests. This PR doesn't have any. Unfortunately the bot won't merge it currently. |
No worries! I was curious. :) |
|
test message from gold |
I read you gold leader. ⭐️ 😛 |
Description
This PR adds support for pre-submit tryjobs for Flutter Gold. This will allow for golden file tests to be run against baselines in pre-sbumit tests, generating visual diffs and enabling pre-submit triage of new or changed golden files.
Status:
Related Issues
Tests
Updated related tests.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]). This will ensure a smooth and quick review process.///).flutter analyze --flutter-repo) does not report any problems on my PR.Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?