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
Bug 1788606 - Speed up decision task by not calling gradle anymore #340
Conversation
80a2865
to
1e96de9
Compare
da7e6db
to
4788351
Compare
da2633d
to
c57b168
Compare
…tch what gradle knows
c57b168
to
b1188f7
Compare
@Mergifyio backport releases_v109 releases_v108 |
✅ Backports have been created
|
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 if it works for the mobile team.
A couple of comments, possibly for followups:
- consider splitting out the generated bits to their own file so we don't mix human and machine written config
- consider adding an explanatory comment to the top of the file on how to update it
artifact_url = f"{tc_root_url}/api/queue/v1/task/{task_id}/artifacts/public%2Fgit%2F{BUILDCONFIG_DIFF_FILE_NAME}" # noqa E501 | ||
message = f"""{BUILDCONFIG_FILE_NAME} file changed! Please update it by running: | ||
|
||
curl --location {artifact_url} | gunzip | git apply |
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.
Make that curl --location --compressed {artifact_url} | git apply
to let curl handle the compression if necessary?
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.
Maybe consider also having the generated .buildconfig.yml as an artifact in addition to the diff.
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.
TIL: curl --location --compressed
. Done!
Maybe consider also having the generated .buildconfig.yml as an artifact in addition to the diff.
Good idea. I'll handle that in a followup.
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 and I could not break it in local testing. I am very pleased with the massive improvement in decision task speed. I am a little concerned about the buildconfig maintenance issues, but I don't have a better idea; nothing comes for free!
Yeah, that's the reason why I had wanted to use a single source of truth for that long (namely |
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.
🔥 Amazing work, @JohanLorenzo! 🚢 it.
@Mergifyio backport releases_v108 |
✅ Backports have been created
|
#210 didn't pay off. Many people and I have seen long decision tasks (> 10 minutes) since focus got migrated over. Let's stop calling calling gradle by caching its output to
.buildconfig.yml
and enforcing them to match with lint tasks.The decision task is now back to 1 minute!
Example of a failed lint task[1]:
Example of a green one[2]:
[1] https://firefox-ci-tc.services.mozilla.com/tasks/RWqWjr05R7yttsVi6dOgkQ/runs/0/logs/live/public/logs/live.log#L71
[2] https://firefox-ci-tc.services.mozilla.com/tasks/HuQBBdnvTC6zVs_axj6emQ/runs/0/logs/live/public/logs/live.log