-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
ci: move BSD testing from sourcehut to Cirrus CI #19616
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Ok, but can we couple this with https://github.com/vmactions (see #19609 )? For BSD we at least want to check that builds work (library headers are available, etc.), if not the full test suite. |
50ae430
to
c1fa56c
Compare
@justinmk ok, I've gotten freebsd to work mostly. There are some tests somewhere that fail which I'll look into, but if you want to see how it will looks overall: https://github.com/neovim/neovim/runs/7638940566?check_suite_focus=true Initial impressions of vmactions: Pros:
Cons:
|
078720e
to
305433d
Compare
Let's only build, then. Don't run the tests.
🤦 This is more of a problem. |
b12053c
to
dae5b48
Compare
Hmmm, we recently (with the LibUV CMake PR) had a situation where the build was successful at the face of it but failed as soon as a Maybe we can define a (really) minimal "core" testsuite that exercises some very basic Lua/LibUV functionality? E.g., pick a single suitable (That would also be a candidate to run on draft PRs instead of the full suite, relieving CI pressure.) |
Hmm, yeah, I like this idea. Just as a quick sanity check. I'm also wondering if we should pick one BSD distro as well. That is instead of checking if 2 BSDs build successfully and pass a few tests, we test one BSD and see if they pass a lot/most/all tests? I don't have good insight into the differences but both have "BSD" in their name so they can't be that different, right? :) |
Maybe |
d1a8ed0
to
232234f
Compare
Looks like some (terminal) tests really don't like the VM... |
9c86823
to
647ce00
Compare
@justinmk @jamessan I'd say this is pretty much finished. Opted to only use openbsd as freebsd takes way too long for some reason. Only run the tests in We can always adjust/add more tests if we notice that our CI budget allows it. |
https://github.com/cross-platform-actions/action uses a different hypervisor. I wonder how its performance compares to vmactions. |
Also runs on Linux, which is a definite plus in itself. |
dd266a4
to
a251f68
Compare
dispatch.sr.ht is being deprecated, meaning that using sourcehut CI won't be possible (see neovim#19609). Since Github Actions doesn't provide any BSD runners an external service is required and Cirrus CI seems like a good replacement for sourcehut. Initially experimented with using FreeBSD and OpenBSD virtual machines in GitHub Actions, but Cirrus has been a much better fit with better performance, logs and overall experience. Failing tests are automatically skipped on FreeBSD regardless it it's on CI or not. Ideally these tests should only be skipped in CI with the help of `isCI` helper function. Unfortunately, the tests don't recognize the environment variable CIRRUS_CI even if it's set manually. This workaround is good enough for the time being, but we might want to only skip tests when using the CI (or even better, fix the failing tests). Closes: neovim#19609
ad9e05a
to
26b462f
Compare
I can't get the cirrus caching to work. Let's try without any caching since it's sufficiently fast enough anyway. |
@@ -78,6 +79,9 @@ describe('notify', function() | |||
end) | |||
|
|||
it('cancels stale events on channel close', function() | |||
if uname() == 'freebsd' then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO / off topic: could make is_os('...bsd')
work
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, yeah could work. I'm not against it, but let's save it for a future discussion like you said.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks great. thank you for this @dundargoc
dispatch.sr.ht is being deprecated, meaning that using sourcehut CI
won't be possible (see #19609).
Since Github Actions doesn't provide any BSD runners an external service
is required and Cirrus CI seems like a good replacement for sourcehut.
Initially experimented with using FreeBSD and OpenBSD virtual machines
in GitHub Actions, but Cirrus has been a much better fit with better
performance, logs and overall experience.
Failing tests are automatically skipped on FreeBSD regardless it it's on
CI or not. Ideally these tests should only be skipped in CI with the
help of
isCI
helper function. Unfortunately, the tests don't recognizethe environment variable CIRRUS_CI even if it's set manually. This
workaround is good enough for the time being, but we might want to only
skip tests when using the CI (or even better, fix the failing tests).
Closes: #19609
Reminder for myself
Dispatch will shut down 2022-10-01, this will need to be merged by then.