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
Cross builds during the release process should ideally run in parallel #1646
Comments
My two cents: I’m pretttttty sure down there inside things we can break the functional build piece safely out toward running some parallel artifact builders. From the core’s perspective it should just be asking for artifacts. How those are achieved can be abstracted. The fastest “build” would be one that checks and discovers all artifacts are already built correctly and returns, otherwise building just the incremental artifacts that need built and once treating them as distinct things, they can each have an independent make called on them, even in parallel. Getting there will be a fair chunk of refactoring, but would be hugely valuable for:
|
+1, I'd probably start by looking at running N GCB jobs with something like
make quick-release GOOS= GOARCH= in each versus running make cross.
There's some minor skew issues (ensuring the same set of platforms), and
coordinating collecting the outputs, but it should be doable, and fast(er).
…On Fri, Oct 16, 2020 at 3:28 PM Tim Pepper ***@***.***> wrote:
My two cents:
I’m pretttttty sure down there inside things we can break the functional
build piece safely out toward running some parallel artifact builders. From
the core’s perspective it should just be asking for artifacts. How those
are achieved can be abstracted. The fastest “build” would be one that
checks and discovers all artifacts are already built correctly and returns,
otherwise building just the incremental artifacts that need built and once
treating them as distinct things, they can each have an independent make
called on them, even in parallel. Getting there will be a fair chunk of
refactoring, but would be hugely valuable for:
- performance
- human toil versus the latencies of build steps (ie: the sitting
around waiting, getting distracted, discovering breakage, reacting)
- correctness: do we really check today that the built artifacts have
some basic level of goodness? If they’re split out we’d definitely need
to….don’t want to discover late (as happens occasionally, ie: user
reported) that some subset of artifacts is missing versus the automation
having a list of things we expect to build, iterating the list to trigger
build & check for each, and awaiting all completed successfully or errored.
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
<#1646 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAHADK4IK2BPSC22PHRMYQ3SLDCKTANCNFSM4SSWJ3AQ>
.
|
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale |
Related work: #1795 |
Now that #1795 has merged, I wonder how much more time we would gain if we split the build into multiple GCB jobs. It is a somewhat large task to write code to split the build, collect and verify the artifacts. Would we see a considerable improvement from splitting the build like ben suggests vs the parallel enabled by Sascha? If it represents just a marginal gain, I'd say we mark this done by #1795 |
Unless I'm misunderstanding the scope of this, I would be concerned that sharding builds may make it more likely we see an incomplete set of artifacts if not all jobs complete, ref kubernetes/test-infra#18808 |
Triaged April 21, 2021: @puerco doesn't have time in the short-term to do anything here. After the formalisation of supported platforms work concludes would be a good time to revisit this. cc @hasheddan |
We had a discussion about this on Slack: https://kubernetes.slack.com/archives/CJH2GBF7Y/p1619032489004200 We already run builds in parallel since #1795 and turns out that this speeds up the stage step by ~10 minutes. Right now, this works only for 1.21 because kubernetes/kubernetes#96882 was not cherry-picked to other release branches, but we will take care of that as well. We might revisit this in the future, but for now, this seems to be a good enough improvement. |
Following up our discussion, I've created the following PRs to cherry-pick this change to other supported release branches:
|
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-contributor-experience at kubernetes/community. |
/remove-lifecycle stale Based on the comment from @xmudrii above I think this has been resolved. Please /reopen if I'm incorrect in this assumption. |
@spiffxp: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
What would you like to be added:
Cross builds during the release process should ideally run in parallel (instead of serially).
Why is this needed:
Paste from @puerco's comment in the following thread: https://kubernetes.slack.com/archives/CJH2GBF7Y/p1602728827335400?thread_ts=1602693775.210300&cid=CJH2GBF7Y
cc: @kubernetes/release-engineering
/priority backlog
The text was updated successfully, but these errors were encountered: