Skip to content

CI: add e2e runs from benchx_examples - #98

Closed
ev-br wants to merge 7 commits into
benchx-dev:mainfrom
ev-br:ci_e2e
Closed

ev-br wants to merge 7 commits into
benchx-dev:mainfrom
ev-br:ci_e2e

Conversation

@ev-br

@ev-br ev-br commented Nov 3, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@ev-br
ev-br marked this pull request as draft November 3, 2026 17:10
@ev-br ev-br closed this Nov 3, 2026
@ev-br ev-br reopened this Nov 3, 2026
@ev-br

ev-br commented Nov 3, 2026

Copy link
Copy Markdown
Collaborator Author

The first run was 17 mins, close-reopen to see how the GHA cache improves it.

@ev-br

ev-br commented Nov 3, 2026

Copy link
Copy Markdown
Collaborator Author

The second run was 6 mins, so indeed CI caching is effective. The PR is still a draft though, pending a move/consolidation of other items from prototype/examples.

@ev-br ev-br changed the title WIP/CI: add a e2e run from benchx_examples CI: add a e2e run from benchx_examples Nov 3, 2026
@ev-br
ev-br marked this pull request as ready for review November 3, 2026 19:11
@ev-br

ev-br commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator Author

This is ready from my side. This PR moves all end-to-end demos from prototype/examples to https://github.com/benchx-dev/benchx_examples, as discussed in the call last week.

Additional machinery:

  • remove the benchx/prototype/examples directory, since all its contents is now in benchx_examples, verbatim;
  • on CI, tests.yml job only contains the tests for the prototype itself;
  • also on CI, run end-to-end-demos in a separate workflow, e2e.yml, in separate jobs for numpy-spin, arrow and bare pyperf demos.

The CI times are: under 3 mins for the unit tests, ~6 mins for the arrow/archery demos, and ~6 mins for numpy-spin.
The only coverage that's lost is that end-to-end examples only run on Linux (were previously run on MacOS, too). Not a big deal I'd think, but am happy to make them CI matrices, too.

@ev-br
ev-br requested a review from rok November 3, 2026 19:18
@ev-br ev-br changed the title CI: add a e2e run from benchx_examples CI: add e2e runs from benchx_examples Nov 3, 2026
ev-br's Claude Code Agent and others added 5 commits November 5, 2026 04:36
…orkflow

prototype/examples/{demo-suite,demo,archery-local} and prototype/demo.sh now
live in benchx-dev/benchx_examples as examples/arrow/{demo-suite,demo,archery-local}
(the demo script is examples/arrow/demo/run.sh).

- Remove them from this repository, and the archery-local step from tests.yml.
- e2e.yml gets a second job, arrow, that runs demo/run.sh and
  archery-local/run.sh from benchx_examples and uploads their output. The
  header now describes both jobs.
- prototype/README.md and docs/design/prototype-design.md point to
  benchx_examples where they described these examples.

The arrow job needs examples/arrow on the benchx_examples ref it clones
(main by default), so it passes once that move is merged there.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…kflow

prototype/examples/pyperf-bench now lives in benchx-dev/benchx_examples as
examples/pyperf-suite.

- Remove it from this repository, and its step from tests.yml.
- e2e.yml gets a third job, pyperf-suite, that runs run.sh from
  benchx_examples and uploads its out/ directory. The header lists all three
  jobs.
- prototype/README.md points to benchx_examples where it described the example.

The job needs examples/pyperf-suite on the benchx_examples ref it clones
(main by default). benchx_examples PR #3 adds the same files unchanged, which
do not run from there; the port with adapted instructions is needed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A fourth job, matmul-params, runs the example from benchx_examples: it installs
benchx, numpy and the CPU build of torch, and runs the quick version from the
example's README (--processes 2 --values 2 --min-time 0.01). It uploads out/,
which holds the result files and the store.

The job's run steps were replayed locally against benchx_examples main (3a6b668):
six cases, twelve results, all successful.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The example lives in benchx-dev/benchx_examples now, and the e2e workflow runs
it from there. The files in this directory were the same, except for the README's
install lines.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
ev-br's Claude Code Agent and others added 2 commits November 5, 2026 05:18
A fifth job, numpy-venvs, runs the example from benchx_examples: it installs
benchx in editable mode, from which run.sh installs benchx in the two venvs it
makes (numpy 1.26.4 and 2.0.2, three rounds), then it runs run.sh. It uploads
out/.

The job's run steps were replayed locally against the example as it is on the
numpy-venvs-example branch of benchx_examples: all steps passed. That branch is
not on main there yet, and the job clones main, so the job fails until it is;
a run on demand can name the branch (examples_ref).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The example lives in benchx-dev/benchx_examples now, and the e2e workflow runs
it from there, so the tests workflow no longer runs it, and the README and
prototype-design.md point at the new place.

The files there are the ones removed here, except that run.sh no longer assumes
the benchx package is two levels up, the README says how to install benchx and
links to UC-04 in this repository, and .gitignore also ignores __pycache__/.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@ev-br

ev-br commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator Author

continued in #102

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