-
Notifications
You must be signed in to change notification settings - Fork 76
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
Fix CI to correctly use OCaml version matrix #296
Conversation
…ent variable" This reverts commit c6340b4.
Yes, nightly, manually.
How long do they take? Depends on how well they're covered by the reg. tests and their likelihood of failing. I assume domain might be worth it, marshalling maybe in the nightly?
Yes, 4.09 min should be fine.
You used it here - times are the same or is it worse than what we had before? |
By running on We could also just run on However, |
I'm surprised about the caching situation in #308, i.e. going back to v1 and doing it manually being so much faster. Because with regression tests, the situation seems to be the following:
And from what I understand, the caching built into v2 doesn't actually cache the entire installed switch but just the local opam repository listing and downloads? How can the equivalent locked workflow be faster than the old one at all then? Also, I guess that means we don't have to then explicitly put If caching the entire switch based on the lock file for the locked workflow brings additional speedup on top of what v2 currently offers, then I suppose our locked workflow could explicitly also do that, but I haven't looked into how well it would play with the v2 action. I don't like the idea of staying with the outdated v1, especially since somehow it seems to be slower despite caching the entire locked switch. |
Currently I left it that way so I could see the unlocked workflow results each time, but I agree it's excessive. I think it'd be fine to limit the unlocked workflow to |
There are several things:
|
We currently compile 4.12.0 every run since only 4.07.1 is cached. See #296 (comment).
Now it's at 2m56s-3m22s: https://github.com/goblint/analyzer/runs/3184132409 |
With an existing cache of the switch, it complains:
|
With v2 and its cache only it now takes 6m59s for ubuntu (and 12m39s for macos): |
These unlocked matrix builds really highlight how fragile our CI is. Regression test timeouts are not so infrequent on GitHub despite the fact that I never see them locally. Restarting all the jobs might cause them to go through, which means that it's just some kind of resource sharing thing on GitHub. Like, is Ruby's timeout using wall time instead of cpu time and that causes it to fail if unfair scheduling doesn't give enough time for Goblint to run? EDIT: I guess we could also increase the regression test timeout to see if it helps. |
Closes #184.
Changes
This implements (a preliminary version) of the CI setup I proposed:
TODOs
Some open questions still are:
Stdlib
usage. 4.09 works, so we could make it the new minimum and have CI enforce enforce that.setup-ocaml@v2
comes with some support built-in.