-
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
Update build workflow #1608
base: master
Are you sure you want to change the base?
Update build workflow #1608
Conversation
It's better to use ubuntu-latest to track current LTS provided by github, instead of having to manually update it. It also makes more sense to stick to the current LTS than trying to support the older one. Signed-off-by: Nick Kossifidis <[email protected]>
This is usefull for testing / debugging. Signed-off-by: Nick Kossifidis <[email protected]>
Greatly reduces the time it takes to checkout the various submodules, and also reduces required storage. Signed-off-by: Nick Kossifidis <[email protected]>
Saves storage and bandwidth by cloning the submodules only once per workflow run. I also do some small steps to reduce the size of checked out repos so that the size of the cache is reduced. Signed-off-by: Nick Kossifidis <[email protected]>
This attempts to shrink the output directory by turning files with the same hash into hardlinks. Tar will then preserve them (reducing its size), and finaly xz will finish the job. This should be better than gzip and utilize more cores during compression. Signed-off-by: Nick Kossifidis <[email protected]>
This takes a bit more time since it involves apt, but it cleans up much more space. I tried removing more but it becomes slower due to post-install triggers etc. I think this is a good compromise. Signed-off-by: Nick Kossifidis <[email protected]>
I thought that it was a deliberate decision to build for the most recent two LTS versions of Ubuntu? E.g.:
I'm not objecting to the switch to just |
From both examples it seems this approach doesn't work well, things break since the repos used here are much more recent than the older ubuntu LTS, and sometimes their build process depends on recent tools and libraries, that are either not present on the older LTS or behave differently. The current build workflow already has exceptions for the older LTS, test-sim is only built for the current LTS, and make report also works only on current LTS. I think it's better to just stick to the current LTS, and even use the ubuntu-latest label so that we don't need to update the yaml files with ubuntu version numbers everytime we get a new LTS. |
Thanks @mickflemm, I'm fine with that but just wondered if dropping the "two most recent LTS versions" approach might have unintended consequences. Maybe @cmuellner might know and/or be able to sign off on this change? |
This series aims to improve the current build workflow as suggested in #1591.