streamstore 0.21.1

DEPRECATED: Use s2-sdk instead
Documentation
name: CI
permissions:
  contents: read
on:
  pull_request:
  push:
    branches:
      - main
env:
  RUST_BACKTRACE: 1
  CARGO_TERM_COLOR: always
  CLICOLOR: 1
  CARGO_INCREMENTAL: 0
  CARGO_NET_GIT_FETCH_WITH_CLI: true
concurrency:
  group: "${{ github.workflow }}-${{ github.ref }}"
  cancel-in-progress: true
jobs:
  ci:
    permissions:
      contents: none
    name: CI
    needs: [test, lint]
    runs-on: ubuntu-latest
    if: always()
    steps:
      - name: Failed
        run: exit 1
        if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped')
  test:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v4
        with:
            submodules: true
      - name: install rust
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: stable
          components: rustfmt, clippy
      - name: install protoc
        uses: arduino/setup-protoc@v3
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
      - uses: Swatinem/rust-cache@v2
      - name: Install nextest
        uses: taiki-e/install-action@nextest
      - name: Run cargo tests
        run: cargo nextest run
  lint:
    runs-on: ubuntu-latest
    steps:      
      - name: checkout
        uses: actions/checkout@v4
        with:
            submodules: true
      - name: install rust
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: stable nightly
          components: rustfmt, clippy
      - name: install protoc
        uses: arduino/setup-protoc@v3
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
      - uses: Swatinem/rust-cache@v2
      - name: Install cargo-sort
        uses: baptiste0928/cargo-install@v3
        with:
          crate: cargo-sort
          version: "^1.0"
      - name: check proto build up-to-date
        run: |
          cargo build --features prost-build
          git diff --exit-code src/api.rs && echo "Up-to-date" || {
              echo "Not up-to-date"
              exit 1
          }
      - name: check documentation
        env:
          RUSTDOCFLAGS: -D warnings
        run: cargo doc --workspace --all-features --no-deps --document-private-items
      - name: check formatting
        run: cargo +nightly fmt --all -- --check
      - name: check clippy
        run: cargo clippy --workspace --all-features --all-targets -- -D warnings --allow deprecated
      - name: check Cargo.toml sorting
        run: cargo sort --workspace --check