nightly #80
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
| name: nightly | |
| on: | |
| schedule: | |
| - cron: "0 3 * * *" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: nightly-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| shard-surface-nightly: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Install shard package and solver build prerequisites | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install --index-url https://download.pytorch.org/whl/cpu torch | |
| python -m pip install -e ".[server,multimodal,dev,shard,native-solver-build]" | |
| python -m pip install ./src/kernels/knapsack_solver | |
| - name: Run nightly shard regression suite | |
| run: | | |
| pytest \ | |
| tests/test_latence_graph_lightrag.py \ | |
| tests/test_latence_graph_crud.py \ | |
| tests/test_latence_graph_quality.py \ | |
| tests/test_reference_api_contract.py \ | |
| tests/test_reference_api_persistence.py \ | |
| tests/test_shard_http_api.py \ | |
| tests/test_shard_hardening.py \ | |
| tests/test_shard_serving_wiring.py \ | |
| -v --tb=short | |
| - name: Run nightly benchmark smoke | |
| run: | | |
| mkdir -p validation-reports/nightly | |
| python benchmarks/oss_reference_benchmark.py --device cpu --points 32 --top-k 5 > validation-reports/nightly/nightly_benchmark.json | |
| python -c "import json; payload = json.load(open('validation-reports/nightly/nightly_benchmark.json', 'r', encoding='utf-8')); assert 'reference_api_search' in payload; assert 'multimodal_search' in payload" | |
| python tools/benchmarks/benchmark_latence_graph_quality.py --mode benchmark --output-json validation-reports/nightly/nightly_graph_benchmark.json | |
| python -c "import json; payload = json.load(open('validation-reports/nightly/nightly_graph_benchmark.json', 'r', encoding='utf-8')); rep = payload['representative']; assert rep['graph']['route_checks']['all_passed']; assert payload['representative']['comparison']['graph_shaped']['recall'] > 0.0" | |
| - name: Upload nightly artifacts | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: nightly-shard-surface | |
| path: | | |
| validation-reports/nightly/nightly_benchmark.json | |
| validation-reports/nightly/nightly_graph_benchmark.json |