Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
piotr-yuxuan opened this issue Dec 22, 2021 · 2 comments
Open

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

piotr-yuxuan opened this issue Dec 22, 2021 · 2 comments

Comments

@piotr-yuxuan
Copy link

Following #51 (comment)

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
Copy link
Author

piotr-yuxuan commented Dec 27, 2021

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

  • One workflow per project contains the matrix job workflow link
  • One general workflow that contains the matrix job and test projects sequentially workflow link

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:

  • Better name for matrix job instances, raw version numbers aren't much helpful.
  • Gather the exit codes somewhere (in a csv file?)
  • Add guards (if: ${{ … }}) to steps to run only if paths changed.
  • Windows should be given more love, but I know nothing about it. Additional or different setup steps are needed.
  • It's really too slow to be honestly practical. I'm not sure it would actually be useful to run it on each commit. What meaningful trigger shall we use?
  • How to chose the versions to be chosen? Could they be somehow automatically updated?
  • Refactor build.sh so that it scans projects.

@piotr-yuxuan piotr-yuxuan changed the title (suggestion) Matrix build to test several versions of GraalVM and Clojure Matrix build to test several versions of GraalVM and Clojure Dec 27, 2021
@FieryCod
Copy link
Member

@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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants