trio icon indicating copy to clipboard operation
trio copied to clipboard

CI changes

Open A5rocks opened this issue 2 years ago • 17 comments

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_members too)
  • [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 of test_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 mypy on 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 :(

A5rocks avatar Nov 24 '23 16:11 A5rocks

A more fun change: Add python 3.13

jakkdl avatar Nov 24 '23 17:11 jakkdl

We also aren't running 3.11/3.12 on Windows.

TeamSpen210 avatar Nov 29 '23 19:11 TeamSpen210

weird CI fail for macOS 3.8: https://github.com/python-trio/trio/actions/runs/7232062095/job/19705878765?pr=2891

jakkdl avatar Dec 16 '23 13:12 jakkdl

Add back Alpine Linux for testing musl libc. https://github.com/python-trio/trio/pull/2917

jakkdl avatar Jan 07 '24 13:01 jakkdl

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.

jakkdl avatar Jan 08 '24 14:01 jakkdl

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.

jakkdl avatar Feb 06 '24 11:02 jakkdl

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?

TeamSpen210 avatar Feb 06 '24 20:02 TeamSpen210

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

A5rocks avatar Feb 07 '24 01:02 A5rocks

Edited list in OP to refer to #2776 and #2678 wrt to pypy+windows (and split up mac&windows at the same time)

jakkdl avatar Feb 12 '24 12:02 jakkdl

A more fun change: Add python 3.13

with a first beta released this should probably be done sooner rather than later.

jakkdl avatar May 24 '24 13:05 jakkdl