name: CI
on:
pull_request: {}
push:
branches:
- main
schedule:
- cron: '35 6 * * 1'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
RUSTDOCFLAGS: "-D warnings"
RUSTFLAGS: "-D warnings"
VCPKG_GIT_COMMIT_ID: af752f21c9d79ba3df9cb0250ce2233933f58486
jobs:
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.91
- run: cargo build --lib
- run: cargo build --lib --features bundled
features:
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
features:
- default
- bundled
- threadsafe,bundled
- alloc,bundled
- alloc,threadsafe,bundled
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: ${{ env.VCPKG_GIT_COMMIT_ID }}
if: runner.os == 'Windows'
- run: vcpkg install sqlite3 --triplet x64-windows-static-md
if: runner.os == 'Windows'
- run: cargo build --lib --no-default-features --features ${{ matrix.features }}
- run: cargo build --lib --release --no-default-features --features ${{ matrix.features }}
test:
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: ${{ env.VCPKG_GIT_COMMIT_ID }}
if: runner.os == 'Windows'
- run: vcpkg install sqlite3 --triplet x64-windows-static-md
if: runner.os == 'Windows'
- run: cargo test --all-targets
- run: cargo test --doc
- run: cargo test --all-targets --features bundled
- run: cargo test --doc --features bundled
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- run: cargo clippy --all-targets -- -D warnings
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt --check
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo doc --document-private-items --no-deps --all-features