tonbo 0.3.2

An embedded persistent KV database in Rust.
Documentation
name: CI

on:
  push:
  pull_request:
  workflow_dispatch:

env:
  CARGO_TERM_COLOR: always
  CARGO_REGISTRIES_MY_REGISTRY_INDEX: https://github.com/rust-lang/crates.io-index

jobs:
  # 1
  check:
    name: Rust project check
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os:
          - ubuntu-latest
          - macos-latest
          - windows-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install latest
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true
          components: rustfmt, clippy

      # `cargo check` command here will use installed `nightly`
      # as it is set as an "override" for current directory

      - name: Run cargo clippy
        uses: actions-rs/cargo@v1
        with:
          command: check

      - name: Run cargo build
        uses: actions-rs/cargo@v1
        with:
          command: build

      - name: Run cargo test
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --workspace
  # 2
  fmt:
    name: Rust fmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install latest nightly
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true
          components: rustfmt, clippy

      # `cargo check` command here will use installed `nightly`
      # as it is set as an "override" for current directory

      - name: Run cargo fmt
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: -- --check

  exmaples:
    name: Rust exmaples
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run datafusion example
        uses: actions-rs/cargo@v1
        with:
          command: run
          args: --example datafusion --features=datafusion

      - name: Run declare example
        uses: actions-rs/cargo@v1
        with:
          command: run
          args: --example declare --features bytes,tokio

  # benchmark:
  #   name: Rust benchmark
  #   runs-on: self-hosted
  #   permissions:
  #     contents: write
  #     pull-requests: write
  #     repository-projects: write
  #   if: github.event_name == 'pull_request'
  #   steps:
  #     - uses: actions/checkout@v4
  #     - name: Install latest nightly
  #       uses: actions-rs/toolchain@v1
  #       with:
  #         toolchain: stable
  #         override: true

  #     # `cargo check` command here will use installed `nightly`
  #     # as it is set as an "override" for current directory

  #     - name: Run cargo bench
  #       uses: actions-rs/cargo@v1
  #       with:
  #         command: bench
  #         args: --features bench

  #     - name: Comment on PR using GitHub CLI
  #       env:
  #         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  #       run: |
  #         gh pr comment ${{ github.event.pull_request.number }} --body-file "read_benchmark.md"
  #         gh pr comment ${{ github.event.pull_request.number }} --body-file "write_benchmark.md"