Skip to content

Add CI workflow to run pytest on PRs#22

Merged
loganbuilt merged 2 commits into
sudoStacks:mainfrom
bradleesand:add-ci-tests
Jun 7, 2026
Merged

Add CI workflow to run pytest on PRs#22
loganbuilt merged 2 commits into
sudoStacks:mainfrom
bradleesand:add-ci-tests

Conversation

@bradleesand

@bradleesand bradleesand commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds .github/workflows/tests.yml running the full pytest suite on Python 3.11
  • Triggers on every PR, on pushes to main, and via workflow_dispatch
  • Installs runtime deps from requirements.txt plus pytest, pytest-asyncio, httpx (needed by FastAPI TestClient)

Why

No general CI workflow runs the suite today — only music-search-benchmark and release workflows. Running pytest on every PR catches regressions and gates the release branch.

Gating

Requires all tests to pass — no continue-on-error, so any failure fails the check. Fixed one pre-existing broken test (tests/test_provenance_version.py, expected 0.9.201.0.0) to meet this requirement.

Test plan

  • Full suite passes on this branch (605 passed, 1 skipped)
  • Failures fail the check (no continue-on-error)
  • Workflow appears on the PR and runs to completion
  • Subsequent PRs trigger the workflow automatically

@loganbuilt

Copy link
Copy Markdown
Collaborator

@bradleesand
Thanks for putting this together — we do want CI coverage, but I need a couple changes before we can merge this into the release path:

  1. Please change the PR base branch from main to arr_integration.

  2. Please update the workflow behavior so test results are actionable for the branch:

  • Right now continue-on-error: true on the pytest step allows green checks even when tests fail.
  • For release-branch gating, we should either:
    • remove continue-on-error so failures fail the check, or
    • split this into a clearly non-blocking/report-only workflow with explicit naming and a separate blocking workflow for required checks.
  1. Please align workflow triggers with our release branch usage:
  • add arr_integration to push/PR trigger scope (or make this workflow explicitly PR-only if that’s the intent).

After those changes and retargeting to arr_integration, I’ll re-review quickly.

pyproject is now 1.0.0; the pyproject-fallback test still expected 0.9.20, so it failed once real test gating was enabled. Update the expected value to 1.0.0.
@bradleesand

Copy link
Copy Markdown
Contributor Author

Thanks for the detailed review!

Rebased onto current main and addressed your points:

  1. Base branch — kept as main. arr_integration was merged into main for the 1.0.0 release, so main is the active release branch. Happy to change the target if you'd prefer otherwise.
  2. No masked failures — I originally added continue-on-error because there were so many failing tests at the time; I'd scoped this PR to just the CI infrastructure and planned to fix the tests in a separate PR. But since the v1.0.0 release most tests now pass on main, so I just fixed the single remaining failing test and removed continue-on-error — failures now fail the check. (That one failure was a stale assertion: test_provenance_version.py still expected 0.9.20 while pyproject is now 1.0.0.) Full run is now 605 passed, 1 skipped, 0 failed.
  3. Triggers — runs on all PRs + pushes to main + workflow_dispatch, aligned with main as the release branch.

@loganbuilt
loganbuilt merged commit f71efb3 into sudoStacks:main Jun 7, 2026
1 check passed
@loganbuilt

Copy link
Copy Markdown
Collaborator

awesome thanks!

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.

2 participants