Closed dallenng closed 3 years ago
These are a lot of jobs, not a bit excessive? I count 13 jobs in total. The test jobs run 9 combinations, and in each one it runs the test suite three times with different sets of features. How long does all this actually take? I know github provides the compute resources for free, but I don't like using up more than needed.
Yes, that's a lot of jobs, I based the config on the qualify script of the repo. Most of the jobs should run in parallel but I don't know how many can run in parallel.
I could reduce the number of build/test jobs by removing nightly and 1.46.0 for Windows and Mac, and keeping those toolchains only on Linux.
I could also reduce the length of the jobs by only using the "all-features" set but I don't know if it would miss some testing.
The big improvement with the central jobs is that they run on all three main platforms. The code has few platform-specific parts, which are rarely touched. This time I happened to touch them, and broke them without noticing, also because I'm currently not able to test these locally.
I use the qualify script regularly, the additional github jobs thus could focus on:
Prio 1a: Compile all features without errors and warnings on all platforms with the current stable Prio 1b: Test the same Prio 2: Compile with MSRV Prio 3: Compile with nightly Prio 4: Check various feature selections on linux
For cost-saving, we could focus on prio 1 and 2.
I updated my branch by keeping only the "all-features" combination per job, and I removed nightly from the toolchains matrix. This shrinks the number of jobs from 13 to 10, and greatly reduce the length of the lint and build/test jobs.
actions-rs/clippy-check display a beautiful summary of warnings/errors on PR.
If there is something missing or you don't want in CI, I can make the changes.