seshat 4.1.0

A matrix message logger with full text search support
Documentation
name: CI

permissions: {}

on:
  push:
  pull_request:
    branches: [master]

env:
  CARGO_TERM_COLOR: always

jobs:
  style:
    name: Check style
    runs-on: ubuntu-latest

    steps:
      - name: Checkout the repo
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - name: Install rust
        run: |
          rustup install stable
          rustup default stable
          rustup component add rustfmt

      - name: Cargo fmt
        run: |
          cargo fmt -- --check

  clippy:
    name: Run clippy
    needs: [style]
    runs-on: ubuntu-latest

    steps:
      - name: Checkout the repo
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - name: Install rust
        run: |
          rustup install stable
          rustup default stable
          rustup component add clippy

      - name: Clippy
        run: |
          cargo clippy --all-targets -- -D warnings

  build-test:
    name: ${{ matrix.name }}
    needs: [clippy]

    runs-on: ${{ matrix.os || 'ubuntu-latest' }}
    strategy:
      matrix:
        name:
          - linux / stable
          - linux / beta
          - macOS / stable

        include:
          - name: linux / stable

          - name: linux / beta
            rust: beta

          - name: macOS / stable
            os: macOS-latest

    steps:
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - name: Install rust
        run: |
          rustup install ${{ matrix.rust || 'stable' }}
          rustup default ${{ matrix.rust || 'stable' }}

      - name: Build Rust
        run: |
          cargo build --features=bundled-sqlcipher

      - name: Test Rust
        run: |
          cargo test --features=bundled-sqlcipher

      # Checkout again to reset the test DB state
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - name: Install node
        uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
        with:
          node-version: "18"

      - name: Install node build dependencies
        run: cd seshat-node && yarn install

      - name: Build node module
        run: cd seshat-node && yarn run build-bundled

      - name: Test node module
        run: cd seshat-node && yarn run test