Skip to content
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

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

mickflemm
Copy link
Contributor

@mickflemm mickflemm commented Nov 2, 2024

This series aims to improve the current build workflow as suggested in #1591.

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]>
@TommyMurphyTM1234
Copy link
Collaborator

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.

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 ubuntu-latest but just pointing this out in case it's important.

@mickflemm
Copy link
Contributor Author

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.

I thought that it was a deliberate decision to build for the most recent two LTS versions of Ubuntu? E.g.:

* [CI: Drop Ubuntu 20.04 and add Ubuntu 24.04 #1570](https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1570)

* [Switch from Ubuntu 20.04 LTS to 22.04 LTS for jobs #1353](https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1353)

I'm not objecting to the switch to just ubuntu-latest but just pointing this out in case it's important.

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.

@TommyMurphyTM1234
Copy link
Collaborator

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants