-
Notifications
You must be signed in to change notification settings - Fork 154
ci(refactor): extract build setup logic into setup-build - #622
Conversation
022fd5b to
fbe271c
Compare
tueda
commented
Mar 10, 2025
Changed from tr ' ' '|no' to sed 's/ /|no/g' (I misunderstood how tr works).
fbe271c to
4bf9299
Compare
tueda
commented
May 25, 2025
Rebased. Added features: zstd, mpich, openmpi. The default MPI is now openmpi. Also addressed the issue described in awalsh128/cache-apt-pkgs-action#150.
4bf9299 to
a908805
Compare
ae3fef0 to
c859b16
Compare
tueda
commented
Aug 26, 2025
Updated.
jodavies
commented
Aug 26, 2025
This looks to be building and caching flint also on Ubuntu, right? Then #703 will go in easily?
The actions setup looks much cleaner with this!
tueda
commented
Aug 26, 2025
Yes, the action now builds FLINT 3.3.1 also on Ubuntu.
It also contains some untested features like ginac. The code in #640 is also partially included (but not tested).
c859b16 to
237cda5
Compare
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.
Once this commit is included in a release, we can simplify the reference to v1.
tueda
commented
Aug 27, 2025
I'm thinking about letting this action optionally run the build step (despite the name setup-build). In that case, the builds in test.yml (which are all common) can be removed by enabling a build feature flag.
jodavies
commented
Aug 27, 2025
Right, this would speed things up (a bit) if the binaries are cached. At some point it might be worth taking a look at the slowest of the tests under valgrind, and trying to make an easier test which hits the same bug, if we would like the CI to run faster (since in the future, we would like to add a lot more tests for better coverage).
tueda
commented
Aug 27, 2025
I just meant removing the five run: make -C sources -j 4 ${{ matrix.bin }} lines :-)
Caching the binaries would be tricky, but potentially useful.
jodavies
commented
Aug 27, 2025
Then I misunderstood. In the context of your changes here it does make sense to remove as much duplicate build code as you can from the various test jobs indeed.
b564d01 to
5fd2e3d
Compare
Refactor workflows by introducing a new composite action, "setup-build", to encapsulate common setup logic. This action sets up the build environment and runs the configure script based on the "features" input.
5fd2e3d to
ada1f0a
Compare
tueda
commented
Sep 1, 2025
FLINT is now statically linked on macOS.
I also committed workflow improvements with more robust checks, and excluded extern/zstd and lib/flint from coverage.
Uh oh!
There was an error while loading. Please reload this page.
This patch extracts the build setup logic into a composite action called
setup-buildto avoid repeating similar steps in different jobs. The setup process includes installing dependencies and libraries, extracting tarballs, runningautoreconf, and executingconfigure.In the future, if we need to elaborate further on setting up libraries (including building and caching), such as MPI or FLINT, we can manage them all in one place.
There are several ways to organize shared logic in GitHub Actions:
setup-buildneeds to modify$LIBRARY_PATHetc.)This patch adopts the last option. To mitigate the drawback, I added lines like
### Initialize setup ###in therun:field, which will appear in the logs.