Skip to content
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

Add functionality to copy logs, screenshots, and other artifacts to LUCI recipe location in engine repo #74344

Closed
jmagman opened this issue Jan 20, 2021 · 17 comments
Labels
engine flutter/engine repository. See also e: labels. P2 Important issues not at the top of the work list package flutter/packages repository. See also p: labels. team Infra upgrades, team productivity, code health, technical debt. See also team: labels. team-infra Owned by Infrastructure team

Comments

@jmagman
Copy link
Member

jmagman commented Jan 20, 2021

Recipe will run the test in a deferred context which will create an env variable called FLUTTER_LOGS_DIR, the test runner can place any logs|artifacts to help debugging there and they will be automatically uploaded to GCS.

#74332 (comment)

See also #43124

@jmagman jmagman added team Infra upgrades, team productivity, code health, technical debt. See also team: labels. team-infra Owned by Infrastructure team P2 Important issues not at the top of the work list labels Jan 20, 2021
@jmagman jmagman self-assigned this Jan 20, 2021
@jmagman
Copy link
Member Author

jmagman commented Jan 21, 2021

@godofredoc Let me know when you have the recipe and modules updated with FLUTTER_LOGS_DIR, I have a PR to test it out at #74378

@jmagman
Copy link
Member Author

jmagman commented Jan 21, 2021

@godofredoc This will be helpful in the engine as well as the framework. 😄

cbracken pushed a commit to cbracken/flutter_recipes that referenced this issue Apr 6, 2021
The module is used only on the devicelab recipe but will be used on both
sdk and engine recipes later.

Change-Id: I114fac2f22739435768c5d111c4d0ee50c59d87d
Bug: flutter/flutter#74344
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/9941
Reviewed-by: Casey Hillers <chillers@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
cbracken pushed a commit to cbracken/flutter_recipes that referenced this issue Apr 6, 2021
…tasks."

This reverts commit 1afbc27.

Reason for revert: Tasks are failing because we are using the task revision causing path clashes.

Original change's description:
> Base module for collecting logs in a generic way for all the tasks.
>
> The module is used only on the devicelab recipe but will be used on both
> sdk and engine recipes later.
>
> Change-Id: I114fac2f22739435768c5d111c4d0ee50c59d87d
> Bug: flutter/flutter#74344
> Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/9941
> Reviewed-by: Casey Hillers <chillers@google.com>
> Commit-Queue: Godofredo Contreras <godofredoc@google.com>

TBR=godofredoc@google.com,chillers@google.com,flutter-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: Idbbdb4205f37959f207aa6c5386927f6141ae9ad
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: flutter/flutter#74344
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/9942
Reviewed-by: Godofredo Contreras <godofredoc@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
cbracken pushed a commit to cbracken/flutter_recipes that referenced this issue Apr 6, 2021
…tasks.

The module is used only on the devicelab recipe but will be used on both
sdk and engine recipes later.

We also changed the logs destination to include task name an a uuid to
ensure logs are not clashing.

Change-Id: Ib512f0a9ed04b4b348a3cb0f382bdee8f6d3849b
Bug: flutter/flutter#74344
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/9944
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
Reviewed-by: Casey Hillers <chillers@google.com>
Reviewed-by: Yusuf Mohsinally <mohsinally@google.com>
@jmagman
Copy link
Member Author

jmagman commented Jun 4, 2021

@godofredoc this is done in the engine as well, right? Can we close?

@godofredoc
Copy link
Contributor

Let me check, I don't remember if it was added to the engine recipe.

@godofredoc
Copy link
Contributor

The logic to collect logs has not been added to the engine yet.

@jmagman
Copy link
Member Author

jmagman commented Jun 17, 2021

@godofredoc is there any way we can prioritize getting this done in the engine repo? It's really hard to debug failures like flutter/engine#26786 (comment) without the uploaded test results.

@godofredoc
Copy link
Contributor

I was actually blocking this on separating the builds/tests in the recipes. The difficulty is that we need to run the step to upload logs in a context to ensure logs are uploaded even if a test fails. Unfortunately the engine recipe has tests everywhere forcing the implementation in several places.

If this is a blocker I'll give a try to implement the logic in the current version of the recipes.

@jmagman
Copy link
Member Author

jmagman commented Jun 18, 2021

No, it's not a blocker. Thanks for the explanation, looking forward to the shiny new separated recipe world!

@jmagman
Copy link
Member Author

jmagman commented Jun 15, 2022

We tested running the engine iOS tests in parallel, and unfortunately in that mode the tests don't report errors or stack traces, and the only way to get that info would be from an uploaded xcresult bundle.

See flutter/engine#34020 (comment).

That means this is now blocking #106050 for the engine tests part.

@jmagman jmagman removed their assignment Dec 2, 2022
@jmagman jmagman added the engine flutter/engine repository. See also e: labels. label Dec 2, 2022
@jmagman jmagman added plugin package flutter/packages repository. See also p: labels. labels Dec 2, 2022
@jmagman
Copy link
Member Author

jmagman commented Dec 2, 2022

This is also needed for plugin and packages since they are migrating from cirrus to luci. Would be really helpful to have screenshots of native failures like https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8795950591422548017/+/u/Run_plugin_tests/native_test/stdout
cc @stuartmorgan

@jmagman
Copy link
Member Author

jmagman commented Jan 12, 2023

@godofredoc should I split off this work between engine and plugins? I think the engine work is blocked on the build/tests in the engine recipes, but I don't think there's any such work planned for plugins. It's so hard to figure out why tests failed without being to upload test results with screenshots, crash logs, etc.

@godofredoc
Copy link
Contributor

Checking if we already implemented this in engine v2 recipes.

@godofredoc godofredoc added this to To do in Engine V2 builders via automation Feb 11, 2023
@godofredoc
Copy link
Contributor

Implementation for engine v2:

https://flutter-review.googlesource.com/c/recipes/+/39100

@jmagman
Copy link
Member Author

jmagman commented Feb 21, 2023

This is also needed for plugin and packages since they are migrating from cirrus to luci.

Merging of the plugins and packages repo is imminent, so we would only need this for flutter/packages recipes.

@jmagman jmagman changed the title Add functionality to copy logs, screenshots, and other artifacts to LUCI recipe location Add functionality to copy logs, screenshots, and other artifacts to LUCI recipe location in engine repo Feb 27, 2023
@jmagman
Copy link
Member Author

jmagman commented Feb 27, 2023

Breaking the packages request off to #121535 since it needs to be implemented in separate recipes.

@godofredoc
Copy link
Contributor

Engine V2 builders automation moved this from To do to Done Mar 1, 2023
@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 15, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
engine flutter/engine repository. See also e: labels. P2 Important issues not at the top of the work list package flutter/packages repository. See also p: labels. team Infra upgrades, team productivity, code health, technical debt. See also team: labels. team-infra Owned by Infrastructure team
Projects
Development

No branches or pull requests

3 participants