fix: use workspace = true exclusively in elicit_sqlx #66
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] | |
| workflow_dispatch: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| jobs: | |
| # All platforms: fmt + clippy only (proves cross-platform compilation) | |
| lint: | |
| name: Lint (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| extra_exclude: "" | |
| - os: windows-latest | |
| # proj-sys requires sqlite3 executable for cmake build | |
| extra_exclude: "--exclude elicit_proj" | |
| - os: macos-latest | |
| extra_exclude: "" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install system dependencies (Ubuntu) | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| sudo apt-get update -q | |
| sudo apt-get install -y libasound2-dev libudev-dev | |
| - name: Install system dependencies (macOS) | |
| if: matrix.os == 'macos-latest' | |
| run: brew install proj | |
| - name: Install system dependencies (Windows) | |
| if: matrix.os == 'windows-latest' | |
| run: choco install sqlite --no-progress -y | |
| - name: Install Rust stable | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: lint-${{ matrix.os }}-${{ hashFiles('Cargo.lock') }} | |
| - name: Check formatting | |
| run: cargo fmt --all -- --check | |
| - name: Clippy | |
| run: cargo clippy --workspace --all-targets ${{ matrix.extra_exclude }} -- -D warnings | |
| # Ubuntu only: test elicitation_derive (fast, no heavy deps). | |
| test-derive: | |
| name: Test derive and macros | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update -q | |
| sudo apt-get install -y libasound2-dev libudev-dev | |
| - name: Install Rust stable | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: test-derive-ubuntu-${{ hashFiles('Cargo.lock') }} | |
| - name: Test elicitation_derive | |
| run: | | |
| cargo test -p elicitation_derive | |
| cargo test -p elicitation_derive --features "chrono,time,jiff,uuid,url" | |
| # Ubuntu only: elicitation split by feature group to stay within runner memory/disk limits. | |
| # Heavy GUI/GPU features (bevy-types, wgpu-types, egui-winit-types, winit-types) are | |
| # excluded from core CI and tested via satellite.yml on demand. | |
| test-elicitation: | |
| name: Test elicitation (${{ matrix.group }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - group: core | |
| features: "--no-default-features" | |
| sys_deps: "libasound2-dev libudev-dev" | |
| - group: datetime-scalar | |
| features: >- | |
| --no-default-features | |
| --features chrono,time,jiff,uuid,url,regex,rand,serde,serde_json,emit,graph | |
| sys_deps: "libasound2-dev libudev-dev" | |
| - group: storage | |
| features: >- | |
| --no-default-features | |
| --features csv-types,toml-types,redb-types | |
| sys_deps: "libasound2-dev libudev-dev" | |
| - group: network | |
| features: >- | |
| --no-default-features | |
| --features reqwest,url,clap-types,sqlx-types,axum-types,tower-types,leptos-types | |
| sys_deps: "libasound2-dev libudev-dev" | |
| - group: geo | |
| features: >- | |
| --no-default-features | |
| --features geo-types,geo,proj-types,rstar-types,geojson-types,wkt-types,wkb-types,georaster-types,serde_json | |
| sys_deps: "libasound2-dev libudev-dev libproj-dev" | |
| - group: analytics | |
| features: >- | |
| --no-default-features | |
| --features polars-types,uom-types,uuid,chrono,serde_json,geo-types | |
| sys_deps: "libasound2-dev libudev-dev" | |
| - group: ui-light | |
| features: >- | |
| --no-default-features | |
| --features ratatui,egui-types,accesskit,palette | |
| sys_deps: "libasound2-dev libudev-dev" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update -q | |
| sudo apt-get install -y ${{ matrix.sys_deps }} | |
| - name: Install Rust stable | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: test-elicitation-${{ matrix.group }}-ubuntu-${{ hashFiles('Cargo.lock') }} | |
| - name: Test elicitation (${{ matrix.group }}) | |
| run: cargo test -p elicitation ${{ matrix.features }} |