Skip to content

Restructuring GitHub Actions CI jobs #24410

Closed
@rgommers

Description

@rgommers

These CI jobs are hard to navigate with several levels of indirection (a workflow file, then an action file, then two tools/travis-*.sh scripts), and now that we have to move a lot of jobs over to Meson it's a good time to clean up. The build_test.yml is particularly messy, and contains 22 jobs which is too much (quite a few are unnecessary too).

A few thoughts:

  • The windows_meson.yml and windows_clangcl.yml can be merged, and named windows.yml
  • It's useful to keep unusual / niche platform jobs in separate files. So let's keep emscripten.yml, cygwin.yml, linux_musl.yml and linux_compiler_sanitizers.yml.
  • Let's break up build_test.yml:
    • linux_simd.yml: all the SIMD related jobs (~8 jobs) and the old_gcc one
    • linux_blas.yml: all the BLAS/LAPACK related variations we're testing (should end up with ~6 jobs)
    • linux.yml: testing across Python versions (PyPy, python-dbg, a pre-release Python in summer time), build-via-sdist, run benchmarks, measure code coverage, and other build options like relaxed-strides. This will also fold in linux_meson.yml.
  • The SIMD tests are the only ones that may use a .sh script, for the checks that are now in travis-test.sh. For the rest, those shell script are just hard to read cruft.
  • I think we'd like a summary of what the larger files to at the top. In particular for SIMD, BLAS and the main linux.yml ones, that would be really helpful.
  • No more matrix'ed tests on a single variable, that's too much repetition of the exact same thing. We must be testing Python 3.9 + OpenBLAS + ubuntu-latest with its default GCC version more than 5 times by now, and it doesn't do much except heat the planet.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions