Skip to content

Set up GitHub Actions workflows for tests, type-checking, and CLA - #279

Merged
copybara-service[bot] merged 2 commits into
google:mainfrom
JyotinderSingh:ci
May 19, 2026
Merged

Set up GitHub Actions workflows for tests, type-checking, and CLA#279
copybara-service[bot] merged 2 commits into
google:mainfrom
JyotinderSingh:ci

Conversation

@JyotinderSingh

@JyotinderSingh JyotinderSingh commented May 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

This change adds three workflows under .github/workflows/ so that opening or updating a PR (and pushing to main) runs the unit test suite, type-checks the codebase with pyrefly, and verifies that the contributor agreement checkboxes in the PR body are checked.

What's included

  • test.yml — Unit tests. Runs python -m pytest tests/ -v on Python 3.10 and 3.13 (min and max of the range declared in pyproject.toml). Installs with pip install -e ".[dev]". Uses pip caching keyed on pyproject.toml, fail-fast: false so both matrix legs report independently, and a concurrency group that cancels in-progress PR runs but lets main runs finish.
  • typecheck.yml — pyrefly. Single job on Python 3.13. Installs pyrefly from PyPI (it isn't in [dev] extras yet) and runs pyrefly check, which picks up the existing [tool.pyrefly] config in pyproject.toml.
  • cla.yml — Contributor Agreement check. Reads the PR body via actions/github-script and fails the run if any of the three required checkboxes (I am a human..., I will be responsible..., I will work with the maintainers...) is unchecked. Guarded by if: github.repository == 'google/qwix' so it doesn't run on forks.
  • PULL_REQUEST_TEMPLATE.md update. Appends a ## Contributor Agreement section with the three checkboxes the CLA workflow looks for — without this, every PR would fail the CLA check.

Design notes

  • Integration tests (integration_tests/) are intentionally out of scope for per-PR CI. They can be added on a nightly schedule if needed to run on GPU/TPU hardware.
  • Linux-only runners; JAX is installed in CPU mode via the default jax / jaxlib PyPI wheels.

Declaration

  • I am a human, and not a bot.
  • I will be responsible for responding to review comments in a timely manner.
  • I will work with the maintainers to push this PR forward until submission.

… skip google3 test

- Python matrix 3.10 → 3.11 because flax>=0.12.0 (a qwix dep) drops 3.10
  even though pyproject.toml classifiers still list it.
- pyrefly check qwix/ — the pyrefly migration only covered qwix/_src and
  qwix/contrib; tests/ and integration_tests/ still have ~2600 type errors
  that block CI without adding value.
- pytest --ignore tests/contrib/kernels/quantized_matmul_test.py — that
  file imports google3.testing.pybase which only exists in Google's
  internal monorepo.
@copybara-service
copybara-service Bot merged commit 6dc08ad into google:main May 19, 2026
3 of 8 checks passed
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