System specs have been quite slow, taking up to 10 minutes per worker.
But now that we freed up a worker from linting and two workers from
models, we can add these to the system specs to reduce the time to test
completion.
The execution time is relatively low but reducing the model workers from
2 to 1 would increase the execution time too much. Combining controllers
and models allows for better balancing.
This should shave off 18 minutes of overhead time for 18 fewer worker
runs in total. It also means that forks with only 20 parallel worker
should complete quicker.
I don't know what this actually does, because it doesn't install the dependencies, that still needs to happen next.
But surely any cache is a good thing?
Each time we run a rails command, it can take some time to load up (I think it was 20s). We run two commands (db setup, then rspec), so the second one should be faster now.
Arrgh it's not so simple.
It looks like both rspec and knapsack use glob for the pattern, so the pattern needs updating. Hmm that might not be too
bad, but it makes it even less manageable.
Considering the system specs are a much bigger bottleneck, I'm going to avoid spending more time here.
But models can still run without.
Half of the controller runs also succeeded, so we could potentially separate those ones out.
Hmm, yes only 7 of them. It would save 20s, or 16% of controller CI runtimesi which are 2min. let's try..
Seting "env" under "jobs" doesn't work it gets picked up as a job. I moved
runs_on to the top level env. but I couldn't fine a way to get it to work.
I tried all syntax I could think of: $runs_on, ${{ runs_on }} env.runs_on,
${{ env.runs_on }} and their capitalized versions.
actions/checkout@v3 actually creates a merge commit into master, to ensure you're testing the latest as close to master as possible.
That's all well and good, but quite confusing when you see errors in CI that aren't present in the actual PR branch. Hopefully this will be a clue when such confusions arise.
This ensures that all our automated tests are using the same version.
I'm not sure it matters what version Prettier runs on, but thought it should be the same.
This is a down-grade, but it's better to match the version in production. The next step will be to upgrade again for production.
Renames jobs
Includes jest and karma tests in build file
Renames jest karma job
Moves build setup into build.yml file
Changes job names
Re-distributes nodes according to run-time