Import-data form, canvas minimap, plot backdrop, image placement #38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Build + test gate for PRs and pushes to main. | |
| # | |
| # Backend job runs the full in-process round trip (backend/test_e2e.py), including | |
| # the snapshot save/open flow. Frontend job typechecks and builds the app. | |
| name: ci | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| jobs: | |
| backend: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" # matches .venv-introspect (README "Run locally") | |
| - name: Setup uv | |
| uses: astral-sh/setup-uv@v5 | |
| with: | |
| version: "0.5.16" # matches docker/Dockerfile and the local dev venv | |
| enable-cache: true | |
| cache-dependency-glob: backend/requirements.txt | |
| - name: Install backend deps | |
| # Exactly the README/run.sh setup: install pinned deps, then strip the GPL | |
| # Leiden backends (custom.leiden uses graspologic-native instead). | |
| run: | | |
| uv pip install --system -r backend/requirements.txt | |
| uv pip uninstall --system leidenalg igraph | |
| - name: Prepare test dataset | |
| # CI runs the Visium-backed portion of test_e2e.py. The Xenium flows | |
| # (segmentation/raster/zarr-import/custom methods) need the larger | |
| # xenium.zarr + xenium_tma.zarr fixtures and are skipped when absent; | |
| # regenerate them locally via scripts/prepare_xenium_*.py (see | |
| # DEVELOPMENT.md "Test datasets") to run the full suite. | |
| run: python scripts/prepare_test_data.py | |
| - name: Backend round-trip | |
| # Script-style test (no pytest collection): the repo's canonical backend check. | |
| run: | | |
| cd backend | |
| PYTHONPATH=. python test_e2e.py | |
| frontend: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install, typecheck, build | |
| run: | | |
| cd frontend | |
| npm ci | |
| npx tsc --noEmit -p tsconfig.app.json | |
| npm run build |