diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 8aec39f..2a7cc87 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -1,42 +1,91 @@ -name: RocksDB build +name: RocksDB CI on: [push, pull_request] jobs: - test-librocksdb-sys: - name: Test librocksdb-sys crate - runs-on: - - windows-latest + fmt: + name: Rustfmt + runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 + - name: Install rust + uses: actions-rs/toolchain@v1 with: - submodules: true - - - name: Install dependencies - run: choco install llvm -y - - - name: Run librocksdb-sys tests + toolchain: stable + components: rustfmt + profile: minimal + override: true + - name: Run rustfmt uses: actions-rs/cargo@v1 with: - command: test - args: --manifest-path=librocksdb-sys/Cargo.toml + command: fmt + args: --all -- --check - test-rocksdb: - name: Test rocksdb crate - runs-on: - - windows-latest + 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: -- -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: 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 uses: actions-rs/cargo@v1 with: command: test - args: -- --skip test_iterator_outlive_db diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c92fcf4..0000000 --- a/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: rust -dist: bionic - -os: -- linux -- osx - -rust: - - stable - -install: - - rustup component add rustfmt - - rustfmt -V - - rustup component add clippy - - cargo clippy --version - -script: - - .travis/lints.sh - - .travis/tests.sh diff --git a/.travis/lints.sh b/.travis/lints.sh deleted file mode 100755 index 0a2018b..0000000 --- a/.travis/lints.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Run cargo fmt and cargo clippy only on OSX host - -if [[ ${TRAVIS_OS_NAME} == "osx" ]]; then - cargo fmt --all -- --check - cargo clippy --all --tests -- -D warnings -fi diff --git a/.travis/tests.sh b/.travis/tests.sh deleted file mode 100755 index ad10c01..0000000 --- a/.travis/tests.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -cargo test --manifest-path=librocksdb-sys/Cargo.toml -cargo test -- --skip test_iterator_outlive_db