CI changes
Fixing existing runs:
- [x] Don't run Jedi on PyPy. (see https://github.com/python-trio/trio/pull/2887 and https://github.com/python-trio/trio/pull/3075) (need to update
test_static_tool_sees_class_memberstoo) - [x] Only run autodeps in
python-trio/trio(see https://github.com/python-trio/trio/pull/2892) - [x] Add a
gc.collect()to the top oftest_for_leaking_fds(this seems to address test flakiness I've seen elsewhere) (see https://github.com/python-trio/trio/pull/2888) - [x] Start running
mypyon PyPy. (see https://github.com/python-trio/trio/pull/3075) - [x] switch macos to run on m1 (see https://github.com/python-trio/trio/pull/2953)
Adding more runs:
- [ ] Add an anaconda run
- [x] Alpine run (see https://github.com/python-trio/trio/pull/2933)
- [ ] Try out qemu for a freebsd
- [x] Cython run (see https://github.com/python-trio/trio/pull/2942)
- [ ] Run full test suite on Cython
- [x] Update MacOS and Windows Python matrix to support 3.11 and 3.12. (see https://github.com/python-trio/trio/pull/3017)
- [x] Add CPython 3.13 (see https://github.com/python-trio/trio/pull/3005)
- [ ] ... Android run??? (https://github.com/marketplace/actions/android-emulator-runner ??)
- [x] pypy nightly 3.11 (not possible)
- [x] add pypy runs for macos (see https://github.com/python-trio/trio/pull/3074)
- [x] add pypy runs for windows (see #2776 and #2678) (see https://github.com/python-trio/trio/pull/3074)
Removing runs:
- [x] Don't run PyPy nightlies less than 3.11 (see https://github.com/python-trio/trio/pull/2952)
These feel like they will take more motivation than I currently have :(
A more fun change: Add python 3.13
We also aren't running 3.11/3.12 on Windows.
weird CI fail for macOS 3.8: https://github.com/python-trio/trio/actions/runs/7232062095/job/19705878765?pr=2891
Add back Alpine Linux for testing musl libc. https://github.com/python-trio/trio/pull/2917
Sleep timing fail on MacOS pypy3.10 https://github.com/python-trio/trio/actions/runs/7448486091/job/20262980216?pr=2886
FAILED ../../../_temp/116e3acf-3f1d-45b1-afa8-48d74a477716/pypy-c-jit-184208-0c87577e022f-macos_x86_64/lib/pypy3.10/site-packages/trio/_tests/test_timeouts.py::test_sleep - assert (1.70860500699996 / 1.0) < 1.5
Not especially weird, and only problematic if it's encountered regularly.
Is it possible to trigger actions on "push or pull request" rather than "push and pull request"? I started #2942 on a branch in trio/ to be able to run tests w/o spamming a PR, but once I opened the PR I'm getting double runs.
A few possible ways:
- Using concurrency groups - create a group name including the commit hash, then it'd only allow one of the pair to run at a time. Then we'd set "cancel-in-progress" to true only on the PR run, causing the push to be cancelled. Downside is that the push events are still run and cancelled, wasting time and cluttering the runs list.
- We could set the push event to only apply to
master, so you'd need to open a PR to get CI. May not be helpful. - We could add a job to the workflow that runs before everything else on push requests. It'd fetch all PRs via the API, get their hash, figure out if we match and then skip the rest. Shouldn't be too complex?
I think the 3rd is the best solution. Just a gh pr view on push and if there's a PR then don't run the next steps. Maybe a if: in the actual CI workflows that checks input and otherwise skips?
The 1st isn't great cause it'll clutter notifications too
Edited list in OP to refer to #2776 and #2678 wrt to pypy+windows (and split up mac&windows at the same time)
A more fun change: Add python 3.13
with a first beta released this should probably be done sooner rather than later.