finufft
finufft copied to clipboard
Revamp CI
Low priority task but is worth starting to consider these issues. Since we increased the number of tests, CI is taking quite a bit to complete. I am drafting some ideas on how to proceed to speedup CI:
- [ ] Use in-house docker images with dependencies installed
- [ ] cache docker images https://www.blacksmith.sh/blog/cache-is-king-a-guide-for-docker-layer-caching-in-github-actions
- [ ] Use sscache to cache c/c++ compiled files https://github.com/DiamonDinoia/finufft/tree/faster-ci-builds. Opened a discussion to sscache to see if it is suits our needs: https://github.com/Mozilla-Actions/sccache-action/discussions/135
- [ ] use a single job to build and run multiple versions of the library, instead of using N ubuntu images and install the env in all of them, we could use one and run multiple cmake commands to build different version of finufft with the same compiler and run it
- [ ] Have publish workflows that generate all the artifacts (.so, .a, language wrappers) in one go and publish them to the package managers
Any thoughts/volunteers on this?