name: RocksDB CI on: [push, pull_request] jobs: fmt: name: Rustfmt runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install rust uses: actions-rs/toolchain@v1 with: toolchain: stable components: rustfmt profile: minimal override: true - name: Run rustfmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: name: Clippy runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 with: submodules: true - name: Install rust uses: actions-rs/toolchain@v1 with: toolchain: stable components: clippy profile: minimal override: true - name: Run clippy uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} args: --all-targets -- -D warnings audit: name: Security audit runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/audit-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} test: name: ${{ matrix.build }} runs-on: ${{ matrix.os }} strategy: matrix: build: [Linux, macOS, Windows] include: - build: Linux os: ubuntu-latest - build: macOS os: macos-latest - build: Windows os: windows-latest steps: - name: Checkout sources uses: actions/checkout@v2 with: submodules: true - name: Install rust uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust || 'stable' }} target: ${{ matrix.target }} profile: minimal override: true - name: Remove msys64 # Workaround to resolve link error with C:\msys64\mingw64\bin\libclang.dll if: runner.os == 'Windows' run: Remove-Item -LiteralPath "C:\msys64\" -Force -Recurse - name: Install dependencies if: runner.os == 'Windows' run: choco install llvm -y - name: Run librocksdb-sys tests uses: actions-rs/cargo@v1 with: command: test args: --manifest-path=librocksdb-sys/Cargo.toml - name: Run rocksdb tests (single-threaded cf) uses: actions-rs/cargo@v1 with: command: test - name: Run rocksdb tests (multi-threaded cf) uses: actions-rs/cargo@v1 env: RUSTFLAGS: -Awarnings # Suppress "variable does not need to be mutable" warnings with: command: test args: --features multi-threaded-cf - name: Run rocksdb tests (jemalloc) if: runner.os != 'Windows' uses: actions-rs/cargo@v1 with: command: test args: --features jemalloc