-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Multiple CI Enhancements #7453
Multiple CI Enhancements #7453
Conversation
- selectively fetch submodule tags - conditionally build mpy-cross - remove frozen from submodule cache
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.
Thanks for working on this! I saw the build time of the main jobs as 1 hr 10min, which seems like a big improvement, but it's hard to compare with other runs, whose times include delays waiting for runners.
One query inline.
Did you test partial clone with --filter=tree:0
vs depth 1
for the large repos like esp-idf and the broadcom firmware repo?
If we used a partial clone for the main repo, would that make it easier to do the "what is changed checks" without invoking deeper and deeper shallow clones?
Yes, comparing two check suites won't paint the correct picture, I have even noticed a difference of seconds-to-minutes for the same task between runners. I suggest you to take look at individual steps of a job.
Yes, without tags
Using |
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.
Thanks! Let's try these as well.
This contains the following CI enhancements:
extmod/ulab
,lib/
andtools/
.git submodule update --init
for frozen.git submodule update --init --depth=1
for everything else.mpy-cross
when required by the board.3.x
for everything except espressif which is on3.10
.Through multiple CI runs in my fork, I have found the following way of fetching submodules to be ideal:
ports/
): A shallow-clone with--depth=1
.extmod/ulab
,lib/
,tools/
): Caching has proven effective.frozen
): A normal fetch. I tried partial-clone with--filter=tree:0
but it doesn't produce a significant difference for small repos.