refactor(api): Refactor to monorepo #51
Workflow file for this run
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: Test/Lint/Benchmark | |
| on: | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - "**/*.rs" | |
| - "**/Cargo.toml" | |
| - "**/Cargo.lock" | |
| - "**/pyproject.toml" | |
| - "pyproject.toml" | |
| - "uv.lock" | |
| - "**/*.py" | |
| - "**/*.pyi" | |
| push: | |
| branches: [main] | |
| paths: | |
| - "**/*.rs" | |
| - "**/Cargo.toml" | |
| - "**/Cargo.lock" | |
| - "**/pyproject.toml" | |
| - "pyproject.toml" | |
| - "uv.lock" | |
| - "**/*.py" | |
| - "**/*.pyi" | |
| workflow_dispatch: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| permissions: | |
| contents: read | |
| jobs: | |
| check_python: | |
| name: Check Python | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event.pull_request.draft != true }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update && sudo apt-get install -y protobuf-compiler | |
| - name: Install Rust toolchain | |
| uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: stable | |
| override: true | |
| components: rustfmt, clippy | |
| - name: Cargo cache | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ~/.cargo/bin/ | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| target/ | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo- | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install uv | |
| run: | | |
| pip install uv | |
| - name: Sync | |
| run: | | |
| uv sync --locked --all-packages --dev | |
| - name: Run black | |
| run: | | |
| uv run -m black --pyi --check ptolemy-py/python | |
| - name: Build client | |
| run: | | |
| make build-client | |
| - name: Run tests with coverage | |
| run: | | |
| uv run -m coverage run -m pytest ptolemy-py | |
| uv run -m coverage xml | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| - name: Run benchmarks | |
| uses: CodSpeedHQ/action@v3 | |
| with: | |
| run: uv run pytest ptolemy-py/tests --codspeed | |
| token: ${{ secrets.CODSPEED_TOKEN }} | |
| check_rust: | |
| name: Check Rust | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event.pull_request.draft != true }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update && sudo apt-get install -y protobuf-compiler | |
| - name: Install Rust toolchain | |
| uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: stable | |
| override: true | |
| components: rustfmt, clippy | |
| - name: Cargo cache | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ~/.cargo/bin/ | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| target/ | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo- | |
| - name: Check code format | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: fmt | |
| args: --all -- --check | |
| - name: Run cargo check | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: check | |
| args: --all-features | |
| - name: Run clippy | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --all-targets --all-features |