fix(search): stabilize active-ingest retries #102
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: T0 test architecture | |
| on: | |
| pull_request: | |
| paths: | |
| - '.github/workflows/ci-test-architecture.yml' | |
| # Protocol, runtime, fixture, scenario, schema, and CLI tests share one Python lane. | |
| - 'scripts/bench/**' | |
| - 'autoresearch.sh' | |
| # Wrapper tests exercise both lifecycle scripts and their adjacent Compose/image support. | |
| - 'scripts/dev/sandbox/**' | |
| - 'docs/development/test-architecture/package_isolation.py' | |
| # Root metadata and the lockfile control every --locked Cargo invocation below. | |
| - 'Cargo.toml' | |
| - 'Cargo.lock' | |
| - 'rust-toolchain.toml' | |
| # Any workspace member manifest can alter metadata-derived package isolation. | |
| - 'apps/*/Cargo.toml' | |
| - 'crates/*/Cargo.toml' | |
| # Cargo auto-discovers build scripts and test/example targets. | |
| - 'apps/*/build.rs' | |
| - 'crates/*/build.rs' | |
| - 'apps/*/tests/**' | |
| - 'crates/*/tests/**' | |
| - 'apps/*/benches/**' | |
| - 'crates/*/benches/**' | |
| - 'apps/*/examples/**' | |
| - 'crates/*/examples/**' | |
| # Sandbox/live targets consume checked-in runtime defaults, including ClickHouse settings. | |
| - 'config/**' | |
| # The ClickHouse client embeds this SQL migration/schema set into live and benchmark builds. | |
| - 'sql/**' | |
| # Analytics/live compilation uses these client and configuration implementations directly. | |
| - 'crates/moraine-clickhouse/src/**' | |
| - 'crates/moraine-config/src/**' | |
| # Repository queries and row decoding are the production side of analytics/live assertions. | |
| - 'crates/moraine-conversations/src/**' | |
| # Live parity starts the production monitor handlers and validates their decoded responses. | |
| - 'crates/moraine-monitor-core/src/**' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| jobs: | |
| architecture-t0: | |
| name: T0 / deterministic test architecture | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Detect package-isolation changes | |
| id: changes | |
| if: github.event_name == 'pull_request' | |
| uses: dorny/paths-filter@v3 | |
| with: | |
| filters: | | |
| package_isolation: | |
| - '.github/workflows/ci-test-architecture.yml' | |
| - 'docs/development/test-architecture/package_isolation.py' | |
| # Cargo metadata and --locked resolution depend on every workspace manifest and lock. | |
| - 'Cargo.toml' | |
| - 'Cargo.lock' | |
| - 'rust-toolchain.toml' | |
| - 'apps/*/Cargo.toml' | |
| - 'crates/*/Cargo.toml' | |
| # Auto-discovered build scripts and test/bench/example targets alter package topology. | |
| - 'apps/*/build.rs' | |
| - 'crates/*/build.rs' | |
| - 'apps/*/tests/**' | |
| - 'crates/*/tests/**' | |
| - 'apps/*/benches/**' | |
| - 'crates/*/benches/**' | |
| - 'apps/*/examples/**' | |
| - 'crates/*/examples/**' | |
| - name: Setup Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Rust stable toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Run performance suite unittest discovery | |
| run: | | |
| python - <<'PY' | |
| import unittest | |
| suite = unittest.defaultTestLoader.discover( | |
| "scripts/bench/tests", pattern="test_*.py" | |
| ) | |
| count = suite.countTestCases() | |
| print(f"Discovered {count} performance suite unittest(s).") | |
| if count == 0: | |
| raise SystemExit("Performance suite discovery selected zero tests.") | |
| PY | |
| python -m unittest discover -v -s scripts/bench/tests -p 'test_*.py' | |
| - name: Check autoresearch adapter syntax | |
| run: bash -n autoresearch.sh | |
| - name: Run sandbox live-wrapper unittest discovery | |
| run: | | |
| python - <<'PY' | |
| import unittest | |
| suite = unittest.defaultTestLoader.discover( | |
| "scripts/dev/sandbox/tests", pattern="test_*.py" | |
| ) | |
| count = suite.countTestCases() | |
| print(f"Discovered {count} sandbox live-wrapper unittest(s).") | |
| if count == 0: | |
| raise SystemExit("Sandbox live-wrapper discovery selected zero tests.") | |
| PY | |
| python -m unittest discover -v -s scripts/dev/sandbox/tests -p 'test_*.py' | |
| - name: Run deterministic live ClickHouse support | |
| run: cargo test -p moraine-conversations --test live_clickhouse --locked | |
| - name: Compile metadata-derived package isolation set | |
| if: github.event_name != 'pull_request' || steps.changes.outputs.package_isolation == 'true' | |
| run: python docs/development/test-architecture/package_isolation.py --repo-root . | |
| - name: Report package isolation not selected | |
| if: github.event_name == 'pull_request' && steps.changes.outputs.package_isolation != 'true' | |
| run: echo 'Package isolation not selected because no workspace manifest, lockfile, Cargo target-topology, or shared support path changed.' |