Merge pull request #49 from zhangsoledad/zhangsoledad/853 #156
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: 1.71.1 | |
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: 1.71.1 | |
components: clippy | |
profile: minimal | |
override: true | |
- name: Run clippy | |
uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --all --tests -- -A clippy::upper-case-acronyms -A clippy::missing_safety_doc -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 }} | |
valgrind: | |
name: valgrind | |
runs-on: ubuntu-latest | |
steps: | |
- run: sudo apt update && sudo apt install -y valgrind | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: run test | |
working-directory: librocksdb-sys | |
run: make test | |
test: | |
name: ${{ matrix.build }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
build: [Linux, macOS, windows-2019] | |
include: | |
- build: Linux | |
os: ubuntu-22.04 | |
- build: macOS | |
os: macos-12 | |
- build: windows-2019 | |
os: windows-2019 | |
steps: | |
- name: Maximize build space | |
if: runner.os == 'Linux' | |
uses: easimon/maximize-build-space@master | |
with: | |
root-reserve-mb: 512 | |
swap-size-mb: 1024 | |
remove-dotnet: 'true' | |
remove-android: 'true' | |
remove-haskell: 'true' | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Install rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.71.1 | |
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: Install jemalloc | |
if: runner.os == 'Linux' | |
run: sudo apt install libjemalloc-dev | |
- name: Install liburing | |
if: runner.os == 'Linux' | |
run: sudo apt install liburing-dev | |
- name: Run librocksdb-sys tests | |
if: runner.os == 'Linux' || runner.os == 'Windows' | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --manifest-path=librocksdb-sys/Cargo.toml -vvvvv | |
- name: Run rocksdb tests | |
if: runner.os == 'Linux' || runner.os == 'Windows' | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
- name: Run rocksdb tests (jemalloc) | |
if: runner.os == 'Linux' | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --features jemalloc | |
- name: Run rocksdb tests (io-uring) | |
if: runner.os == 'Linux' | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --features io-uring | |
- name: Run rocksdb tests (portable) | |
if: runner.os == 'Linux' || runner.os == 'macOS' | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --features portable | |
- name: Run rocksdb tests (march-native) | |
if: runner.os == 'Linux' | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --features march-native |