Skip to content

Conversation

@straight-shoota
Copy link
Member

@straight-shoota straight-shoota commented Nov 5, 2025

Execution contexts (RFC 0002) are nearing maturity (#15342) and until now we aren't even running CI with this configuration.
This is not as bad as it may seem: Because they're actively worked on, there is ample local test coverage. If anything were to break, we'd probably notice relatively quickly.
But going into the future, we want the additional confidence from regular CI tests.

So here is a patch to get this going in GitHub actions.

The first commits are clean-up and refactoring to simplify the configuration. I'll extract that to a separate PR. This requires changes to release-update.sh as well.

The meat of the change is adding a matrix with three compiler flags configurations to most of the general test jobs:

  • no flags
  • -Duse_libevent
  • -Dpreview_mt -Dexecution_context

That's what I considered most relevant, but I'm open to suggestions.
We could of course test even more, for example only -Dpreview_mt or the combination -Duse_libevent -Dpreview_mt -Dexecution_context.
But that escalate quickly.

In fact, this patch increases the number of jobs on a normal commit from 40 to about 51 (estimate). With smoke tests (which only run under special conditions), it's up from 49 to 78.
The increase naturally also reflects in the overall run time. Unfortunately, this resets most of the improvements we made with #14983 so far.

In order to reduce overall jobs a little bit, I'm dropping macos-14. Testing on macos-15 should be sufficient.

Perhaps we could restrict some configuration tests to run less often. Similar to forward compatibility test, for example? This would make the workflow configurations more complex, unfortunately.
But it could be well worth it, especially providing the ability to easily add additional configurations to the test matrix without exponential growth of CI jobs on most typical commits.

Note: The errors from actionlint seem to be false positives. The workflows work just fine and as expected.

@ysbaddaden
Copy link
Contributor

ysbaddaden commented Nov 6, 2025

  • Maybe we should only add -Dpreview_mt -Dexecution_context for starters? Since the PR is about execution contexts, not the event loops :)

  • There is no -D use_libevent flag. Did you mean -D evloop=libevent?

    We already use libevent by default on all *BSD but FreeBSD (because issues with kqueue), so the smoke tests would be testing the same build twice. We also don't support libevent on Windows. I think just running the std specs with libevent on the latest linux would prove enough to catch issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants