kaocha 2024-04-09

I have a pretty slow test suite. Was wondering if Kaocha can ease parallelizing it at the CI jobs level? e.g. use 4 CI jobs, each runs a given slice of the test suite

One other technique to consider for GHA is to logically split your tests in some other way (e.g. per component or unit/functional or whatever), and run these as separate GHA tasks, in parallel. This is what we do and it works pretty well - we’ve parallelized other chunks of the build as well which has brought the overall time for a prod deployment from 15 minutes to closer to 5.

Probably it's simple enough to adapt to GHA Thanks!

not sure if this helps any, but we did a similar thing (following the same blog post actually) with circleci & kaocha, encapsulated in plugin that is used for parallelizing when running browser tests: https://github.com/CSCfi/rems/blob/b237e3a4d0dcd1f6073a4ff4eba0fcf800238ef7/test/clj/rems/kaocha_circleci.clj definitely had to experiment here and there

Awesome! Definitely I'll look everywhere I can for inspiration

👍 1

We built this at my job! We thought about open sourcing it but didn’t put in the work. I’ll bring it up when I’m at work on Wednesday

🙏 2

It’s actually pretty simple to build as a hook

It's not kaocha specific and may not answer your question directly, but I have found that a GitHub Actions job matrix can be fed with JSON. So, for some projects, I have a bb task that generates the JSON that defines the jobs to run, and those jobs are, in turn, bb tasks. I have several examples, but https://github.com/clj-commons/rewrite-clj/blob/880563fd751f710e290cc8c7359691b7ae047174/.github/workflows/unit-test.yml#L30-L38. Sometimes, I've had to fiddle with the granularity of jobs; if I have too many jobs, the overall duration will suffer due to GHA job queueing.

❤️ 1

This might be helpful. However, this is exclusive for CircleCI https://www.juxt.pro/blog/parallel-kaocha/