-
Notifications
You must be signed in to change notification settings - Fork 166
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
github/workflows: Added the platform suffix to the linuxkit cache. #4579
Conversation
Packages built for different platforms are stored in the same cache based on the arch. This PR will creates cache based on the platform suffix for eve to refer the it from the cache. Signed-off-by: yash-zededa <[email protected]>
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, good catch, since we are building variants with platform we should do that
Given the structure this is correct. Is this the right structure though? Doesn't this mean that we rebuild all of the packages except for those that have platform variants? I know, it's prior to this PR - and this PR fixes a clear bug - but let's take advantage to have the conversation. One matrix run builds arm64-generic, all packages. The next builds arm64-nvidia-jp6, which builds generic for all packages except those that have a variant. Most of the time, those already will be published, so it won't matter, but if a few have changed, that will make it take a lot longer. |
I mean using GitHub cache also will reduce pull rate from docker, which could potentially hit the infamous pull rate limit, won't it? |
Yes but that wasn't what I was concerned about. Or were you responding to something else? |
I was responding to this :)
I got what you're saying, so we won't skip generic packages when we build Nvidia-jp6? And if I build arm64-generic and arm64-nvidia-jp6 on the same machine, will Makefile be smart enough to skip already build generic packages when building Nvidia-jp6? |
Is eve a sponsored OSS package on docker hub? If it is, those pulls will not matter.
As far as I recall, when you build one platform, it builds (or pulls) everything, trying platform specific before falling back to generic. As for same machine, no such thing. Matrix runs on GHA get their own VMs. This makes me wonder if this would not be easier with the other approach we discussed. Where |
True, but, we can technically run not a matrix, but multiple steps, way worse code, wouldn't like going there, but it's an option, trying to understand, where exactly we do things and how :) |
This discussion is really relevant, but we need this fix anyways in the current workflow, so I've created the following issue: #4580 to continue the discussion so we can merge this PR. |
Packages built for different platforms are stored in a shared cache based on the architecture.
This PR introduces platform-specific cache suffixes for EVE, ensuring it retrieves the correct cache. This prevents build failures caused by architecture-dependent dependencies.