-
Notifications
You must be signed in to change notification settings - Fork 234
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
[ci] add workflow 'Containers' #116
Conversation
Note that CI fails because images were not pushed to |
I like this concept! However, I actually don't line the thing with installing the GCC toolchain. There should be a better approach like using the "official" nightly releases from https://github.com/riscv/riscv-gnu-toolchain/releases. I know we have discussed this already and I know there are some multilib issues... Anyway, I just wanted to say again, that I don't like this "curl Stephan's GCC" concept 😄 However, the container workflow is a good idea and it might be very useful for future modules (even though I am still overwhelmed by this and I honestly cannot say that I understand all of it 😄). 👍
Let's clear that before merging. |
I agree, however, it is unrelated to this PR. Here, I moved the same code that is used currently into a container. I did not change the functionality/procedures at all. This is precisely meant to make modifications easier. After this PR is merged, changing it in the dockerfile will suffice for all the (non-windows) workflows to use it.
The main idea is: instead of installing the dependencies each time, use containers for that. We create container images once a week only (so, we download and install the dependencies once a week). All other workflow runs will just retrieve the container image and execute the tasks inside. If you review the modifications to the workflows, I just removed all the setup/installation steps, and then used
See #126. |
I rebased this PR, and I reorganised the content. There are now three commits:
I did not use the container in workflow riscv-arch-test due to the serious performance issues discussed in #119. @stnolting, I think this is ready to merge. It will allow to rebase the pydoit branch. Meanwhile, we can investigate what's happening with the performance of those tests. |
Sorry, somehow this got lost in my feed... 😅 However, thanks for the contribution! ❤️ |
Instead of installing the dependencies in each CI workflow and job, in this PR a 'Containers' workflow is added for building custom images to be used in this repo. Precisely, images
ghcr.io/stnolting/neorv32/sim
andghcr.io/stnolting/neorv32/impl
are built and pushed. Then, in other workflows, those images are used.Workflow 'Containers' is not triggered by pushes or PRs. It is executed weekly, and it can be triggered manually.
Note that we are currently using container images already. Therefore, the only advantage of this PR for now is avoiding the installation of the RISCV toolchain. However, it sets the foundation for future enhancements, such as the ones in #110.