parity-db 0.5.4

Key-value database for the blockchain
Documentation
name: Rust

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

env:
  CARGO_TERM_COLOR: always

jobs:
  test:
    strategy:
      matrix:
        os: [ubuntu-22.04, macos-13-xl, windows-2022]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v3
    - uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        override: true
        profile: minimal
    - uses: actions-rs/cargo@v1
      with:
        command: test
        args: --features instrumentation --verbose

  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true
          profile: minimal
          components: rustfmt
      - uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check
      - uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all --manifest-path fuzz/Cargo.toml -- --check

  clippy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          components: clippy
      - uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --all-targets
      - uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --all-targets --manifest-path fuzz/Cargo.toml

  address_sanitizer:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true
      - uses: actions-rs/cargo@v1
        with:
          command: test
          args: --verbose --target x86_64-unknown-linux-gnu
        env:
          RUSTFLAGS: -Z sanitizer=address

  loom:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true
          profile: minimal
      - uses: actions-rs/cargo@v1
        with:
          command: test
          args: --test loom --features=loom,instrumentation --release --verbose
        env:
          LOOM_MAX_PREEMPTIONS: 2
          LOOM_MAX_BRANCHES: 3000

  test_aarch64:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: docker/setup-qemu-action@v2
        with:
          platforms: linux/arm64
      - run: docker run -v "$(pwd)":/workdir --platform linux/arm64 -w /workdir --env CARGO_NET_GIT_FETCH_WITH_CLI=true rust:1-bookworm cargo test --features instrumentation --verbose