name: RocksDB CI on: [push, pull_request] env: RUST_VERSION: 1.60.0 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: ${{ env.RUST_VERSION }} components: rustfmt profile: minimal override: true - name: Run rustfmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check doc-check: name: Rustdoc-check runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install rust uses: actions-rs/toolchain@v1 with: toolchain: ${{ env.RUST_VERSION }} components: rust-docs profile: minimal override: true - name: Run cargo rustdoc uses: actions-rs/cargo@v1 with: command: rustdoc args: -- -D warnings clippy: name: Clippy runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install rust uses: actions-rs/toolchain@v1 with: toolchain: ${{ env.RUST_VERSION }} 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 - name: Install rust uses: actions-rs/toolchain@v1 with: toolchain: ${{ env.RUST_VERSION }} 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 rocksdb tests run: | cargo test --all cargo test --all --features multi-threaded-cf - name: Run rocksdb tests (jemalloc) if: runner.os != 'Windows' run: cargo test --all --features jemalloc