feat: Setup lance-c crate (#1) #1
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: "1" | |
| jobs: | |
| format: | |
| name: Rustfmt | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| components: rustfmt | |
| - name: Check formatting | |
| run: cargo fmt -- --check | |
| clippy: | |
| name: Clippy | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| components: clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Clippy | |
| run: cargo clippy --all-targets -- -D warnings | |
| test-linux: | |
| name: Tests (Linux) | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 30 | |
| env: | |
| CC: clang | |
| CXX: clang++ | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Run tests | |
| run: cargo test | |
| - name: Run C/C++ compilation tests | |
| run: cargo test --test compile_and_run_test -- --ignored | |
| test-macos: | |
| name: Tests (macOS) | |
| runs-on: macos-14 | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Run tests | |
| run: cargo test | |
| - name: Run C/C++ compilation tests | |
| run: cargo test --test compile_and_run_test -- --ignored | |
| rustdoc: | |
| name: Rustdoc | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Check documentation | |
| run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps | |
| msrv: | |
| name: MSRV (1.91.0) | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| toolchain: "1.91.0" | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Check MSRV | |
| run: cargo check --all-targets | |
| license-headers: | |
| name: License headers | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Check Rust files for SPDX headers | |
| run: | | |
| MISSING="" | |
| for f in $(find src tests -name '*.rs'); do | |
| if ! head -2 "$f" | grep -q 'SPDX-License-Identifier'; then | |
| MISSING="$MISSING $f" | |
| fi | |
| done | |
| if [ -n "$MISSING" ]; then | |
| echo "Missing SPDX license header in:$MISSING" | |
| exit 1 | |
| fi |