Skip to content

ci: cut what a pull request run downloads and runs - #898

Merged
iory merged 1 commit into
mainfrom
ci/faster-pr-runs
Sep 11, 2026
Merged

ci: cut what a pull request run downloads and runs#898
iory merged 1 commit into
mainfrom
ci/faster-pr-runs

Conversation

@iory

@iory iory commented Sep 11, 2026

Copy link
Copy Markdown
Owner

Adds a concurrency group keyed on the pull request number, so pushing a fixup cancels the previous run rather than letting its sixteen test jobs finish, while main, the cron run and manual dispatches keep a lane of their own and are never cancelled.

Caches pip between runs and caches the Blender archive by version, instead of re-downloading roughly 350MB in each of the thirteen matrix jobs; scikit-robot itself is still built from source everywhere, so the remove-setuptools and skip-all-extras entries test what they tested before.

Skips the three test jobs when a pull request touches only docs, markdown or LICENSE. Check Formatting, the single required status check, sits outside the gate and still runs on every pull request.

Four changes to the test workflow, none of which alter what is tested on
main or on the nightly cron:

- Add a concurrency group keyed on the pull request number, so pushing a
  fixup cancels the previous run's sixteen test jobs. Every other event
  falls back to the run id, giving it a lane of its own, so pushes to
  main, the cron run and manual dispatches are never cancelled and never
  queue behind one another.

- Cache pip across runs via setup-python and drop `--no-cache-dir` and
  `pip cache purge`. The purge was close to a no-op, since each runner
  starts with an empty cache anyway; the re-downloads came from
  `--no-cache-dir` plus having nothing persisted between runs. pip does
  not cache a wheel built from a local directory, so scikit-robot itself
  is still built from source in every job and the remove-setuptools and
  skip-all-extras matrix entries keep testing what they tested before.

- Cache the Blender archive, keyed on the version alone, instead of
  pulling it from download.blender.org in all thirteen jobs on every
  run. It lives under $HOME because the cache action restores as the
  runner user, which cannot write to /opt. BLENDER_VERSION moves up to
  the job env and the release directory is derived from it, so the
  version is written once rather than twice.

- Skip the three test jobs when a pull request touches only docs,
  markdown or LICENSE. `some-with-excludes` is required here: the
  default quantifier ORs the patterns together, which would make
  `!docs/**` match every file under docs rather than exclude it. The
  filter step runs on pull requests only and the output falls back to
  true elsewhere, so main, the cron run and workflow_dispatch always get
  the full suite. Check Formatting, the one required status check, is
  outside the gate and still runs on every pull request.
@iory
iory force-pushed the ci/faster-pr-runs branch from a4b5e9a to 19ff2d2 Compare September 11, 2026 07:23
@iory
iory merged commit de1ff26 into main Sep 11, 2026
23 checks passed
@iory
iory deleted the ci/faster-pr-runs branch September 11, 2026 07:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant