-
Notifications
You must be signed in to change notification settings - Fork 16
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
Add workflows to test OCaml trunk on Cygwin #305
Conversation
The path and file names are enough
The test suite takes too much time to run under Cygwin so split it up in two parts so that it can run within the timeout bound The two CI workflows have different roles, so that only one should hopefully build the compiler from scratch, the other one should get it from cache
First of all: thanks for this well-structured and carefully prepared PR 🙏
I suppose it is the Unix-emulation of Cygwin (and perhaps some inefficiencies in there) that is causing this difference in execution speed? I hope that we at some point will get profiling tools to figure it out... Anyway: How can we get a nice CI status badge of the output into the README? For the first/second or both? |
Unfortunately, as the test suite is split up into two workflows on Cygwin, we need two badges
I had a go at this option, as an attempt to get one badge for both workflows (on my branch
I suppose so. Cygwin has clearly a lot of work to do to map POSIX expectancies on Windows API.
I finally added both in a new commit as I failed two attempts ( |
The CI failures were unrelated:
I'll therefore merge. |
The #311 CI workflow for Cygwin 2 failed with
https://github.com/ocaml-multicore/multicoretests/actions/runs/4469170087/jobs/7850901158?pr=311 Is this expected? |
This branch is finally getting mergeable.
Unfortunately, running the test suite on Cygwin takes so much time that it never fits into a single 6-hour run, so this PR proposes to add two workflows, each handling about half of the tests.
Still, I’d like to avoid repeating work as much as possible, in particular building twice the compiler and the dependencies (which take about 50 minutes in all the test rounds I ran...). So the way it is currently split up is:
cygwin
input variable set to “initializer”, will build the compiler and the dependencies and create a cache entry with all that as soon as they are ready, before starting the tests per se,Another possible (if I understood correctly github docs) strategy would be to set up the second workflow as triggered only when the first one completes. It would be slower but it would be simpler and quite possibly more robust (if the two workflows are not started at the same time, for instance when the runners are quite busy, the waiting strategy will fail).
@jmid: do you have any preference between those two options?