clj-easy / graalvm-clojure

This project contains a set of "hello world" projects to verify which Clojure libraries do actually compile and produce native images under GraalVM.
Apache License 2.0
497 stars 45 forks source link

Matrix build to test several versions of GraalVM and Clojure #53

Open piotr-yuxuan opened 2 years ago

piotr-yuxuan commented 2 years ago

Following https://github.com/clj-easy/graalvm-clojure/pull/51#issuecomment-999532578

Reference: https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix

I think it could be a very fun thing for me to work on :-)

piotr-yuxuan commented 2 years ago

Some initial feedback: two approaches were tried, to try and play a bit with the limits of GitHub Actions.

The first instance tries to abuse the limits of free GitHub runners, obviously it gets stuck and that doesn't go well. The second approach with only one workflow seems to be more practicable albeit slow.

TODO:

FieryCod commented 2 years ago

@piotr-yuxuan The questions you ask are mostly solved with the github configuration for the graal-config project.

See GitHub configuration: https://github.com/clj-easy/graal-config/blob/master/.github/workflows/ci.yml

The L55 of the test suite also checks if there was a change in a project to run only these. https://github.com/clj-easy/graal-config/blob/master/tests.clj#L55

Maybe it's better to experiment there first? e.g. add support for automatic compatibility matrix generation?