Skip to content

feat(tiers): enhance tier management with new tool functionalities #558

feat(tiers): enhance tier management with new tool functionalities

feat(tiers): enhance tier management with new tool functionalities #558

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
verify-pins:
name: Verify dependency pins
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Prepare Cargo workspace for CI
run: bash scripts/ci/prepare-cargo-workspace.sh
- name: Install uv
uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3
with:
python-version: "3.13"
enable-cache: true
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install Node.js
uses: actions/setup-node@v6
with:
node-version: "22"
- name: Install Go
uses: actions/setup-go@v6
with:
go-version: "1.25"
cache: false
- name: Install verify-pins tools
run: bash scripts/ci/install-verify-pins-tools.sh
- name: Verify dependency pins
run: bash scripts/deps/verify-pins.sh --short --no-report
test:
name: Test (Python 3.13)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Prepare Cargo workspace for CI
run: bash scripts/ci/prepare-cargo-workspace.sh
- name: Install uv
uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3
with:
python-version: "3.13"
enable-cache: true
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install dependencies
run: uv sync --all-extras --group dev --group test --locked
- name: Verify cyt-indexer-sdk import
run: uv run python -c "from cyt_indexer._native import build_catalog_index; assert callable(build_catalog_index)"
- name: Install ast-grep
run: uv pip install ast-grep-cli==0.41.0
- name: Ast-grep scan
run: uv run ast-grep scan src/ sdk/
- name: Check agent imports
run: uv run python scripts/pre-commit-hooks/check_agent_imports.py
- name: Check cyt_client imports
run: uv run python scripts/pre-commit-hooks/check_cyt_client_imports.py
- name: Ruff lint
run: uv run ruff check src/cyt src/tests
- name: Ruff format
run: uv run ruff format --check src/cyt src/tests
- name: Mypy
run: uv run mypy -p cyt
- name: Pytest (unit)
run: bash scripts/local/tests/pytest-category.sh unit
- name: Pytest (gherkin unit)
run: bash scripts/local/tests/pytest-category.sh gherkin-unit
- name: Pytest (quality_metrics)
run: bash scripts/local/tests/pytest-category.sh quality_metrics
- name: Pytest (coverage)
run: bash scripts/local/tests/pytest-category.sh coverage
- name: Pytest (mutation)
run: bash scripts/local/tests/pytest-category.sh mutation
- name: Pytest (sdk/python unit)
run: bash scripts/local/tests/pytest-sdk-python.sh
- name: Rust tests (cyt-indexer)
run: cargo test -p cyt-indexer --features testing,ffi
- name: Rust fmt
run: cargo fmt --all -- --check
- name: Rust clippy (cyt-indexer)
run: cargo clippy -p cyt-indexer --all-targets --all-features -- -D warnings
- name: Rust FFI smoke test
run: cargo test -p cyt-indexer --no-default-features --features ffi --test ffi_smoke
- name: Rust cucumber (bm25 cohesion)
run: cargo test -p cyt-indexer --features testing --test cucumber_bm25_cohesion
- name: Build package
run: uv build
test-typescript-sdk:
name: Test (TypeScript SDK)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Prepare Cargo workspace for CI
run: bash scripts/ci/prepare-cargo-workspace.sh
- name: Install Node.js
uses: actions/setup-node@v6
with:
node-version: "22"
cache: npm
cache-dependency-path: sdk/typescript/package-lock.json
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install uv (parity reference)
uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3
with:
python-version: "3.13"
enable-cache: true
- name: Sync Python SDK (parity reference)
run: uv sync --all-extras --group dev --group test --locked
- name: Install dependencies
working-directory: sdk/typescript
run: npm ci
- name: Build TypeScript SDK
working-directory: sdk/typescript
run: npm run build
- name: Test TypeScript SDK (unit)
working-directory: sdk/typescript
run: npm run build && npm run test:unit
- name: Test TypeScript SDK (parity)
working-directory: sdk/typescript
run: npm run test:parity