RowMasks use bitmasks instead of bitmaps #4697
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: CI | |
on: | |
push: | |
branches: ["develop"] | |
pull_request: {} | |
workflow_dispatch: {} | |
permissions: | |
actions: read | |
contents: read | |
checks: write # audit-check creates checks | |
issues: write # audit-check creates issues | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: 1 | |
jobs: | |
python-lint: | |
name: "Python (lint)" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: spiraldb/actions/.github/actions/[email protected] | |
- name: Python Lint - Format | |
run: uv run ruff format --check . | |
- name: Python Lint - Ruff | |
run: uv run ruff check . | |
python-test: | |
name: "Python (test)" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/cleanup | |
- uses: rui314/setup-mold@v1 | |
- uses: ./.github/actions/setup-rust | |
- uses: spiraldb/actions/.github/actions/[email protected] | |
- name: Pytest - PyVortex | |
run: | | |
uv run pytest --benchmark-disable test/ | |
working-directory: pyvortex/ | |
- name: Doctest - PyVortex | |
run: | | |
uv run make clean && uv run make doctest | |
working-directory: docs/ | |
- name: Ensure docs build - PyVortex | |
run: | | |
uv run make html | |
working-directory: docs/ | |
- name: Ensure wheel and sdist can be built on Linux - PyVortex | |
run: | | |
# force linux compatibility to ensure there is exactly one wheel ergo no ambiguity in installation | |
uv run maturin build --interpreter python3.10 --compatibility linux | |
working-directory: pyvortex/ | |
- name: Ensure wheel can run tests successfully | |
run: | | |
set -ex | |
echo creating a fresh venv which does *not* have the normal dependencies to ensure the wheel dependencies are correct | |
rm -rf .venv | |
uv sync --only-dev | |
uv run pip install target/wheels/vortex_array-*.whl || { uv run pip debug --verbose ; exit 1 ; } | |
uv run pip install pytest | |
cd pyvortex/test | |
uv run pytest | |
rust-docs: | |
name: "Rust (docs)" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-rust | |
- name: Docs | |
run: cargo doc --no-deps | |
build-default: | |
name: "Build (default)" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/cleanup | |
- uses: rui314/setup-mold@v1 | |
- uses: ./.github/actions/setup-rust | |
- name: Rust Build (Default features) | |
run: cargo build --all-targets | |
build-all: | |
name: "Build (all-features)" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/cleanup | |
- uses: rui314/setup-mold@v1 | |
- uses: ./.github/actions/setup-rust | |
- name: Rust Build (All Features) | |
run: cargo build --all-features --all-targets | |
rust-test: | |
name: "Rust (tests)" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/cleanup | |
- uses: rui314/setup-mold@v1 | |
- uses: ./.github/actions/setup-rust | |
- name: Rust Lint - Format | |
run: cargo fmt --all --check | |
- name: Rust Lint - Clippy | |
run: cargo clippy --all-features --all-targets | |
- name: Rust Test | |
run: cargo test --workspace --all-features | |
license-check-and-audit-check: | |
name: License Check and Audit Check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/cleanup | |
- uses: rui314/setup-mold@v1 | |
- uses: ./.github/actions/setup-rust | |
- uses: actions/checkout@v4 | |
- name: License Check | |
run: cargo install --locked cargo-deny && cargo deny check | |
- uses: rustsec/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
ignore: "RUSTSEC-2023-0384" | |
miri: | |
name: "miri" | |
runs-on: ubuntu-latest | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-backtrace=full -Zmiri-disable-isolation | |
steps: | |
- uses: rui314/setup-mold@v1 | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-rust | |
- name: Run tests with Miri | |
run: cargo miri test | |
bench-test: | |
name: "bench test" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/cleanup | |
- uses: rui314/setup-mold@v1 | |
- uses: ./.github/actions/setup-rust | |
# Required to run benchmarks | |
- name: Install DuckDB | |
uses: opt-nc/[email protected] | |
with: | |
version: v1.0.0 | |
- name: Rust Bench as test | |
run: cargo bench --bench '*[!noci]' -- --test | |
generated-files: | |
name: "Check generated proto/fbs files are up to date" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/cleanup | |
- uses: rui314/setup-mold@v1 | |
- uses: ./.github/actions/setup-rust | |
- uses: ./.github/actions/setup-flatc | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v3 | |
- name: "regenerate all .fbs/.proto Rust code" | |
run: | | |
cargo xtask generate-fbs | |
cargo xtask generate-proto | |
- name: "Make sure no files changed after regenerating" | |
run: | | |
test -z "$(git status --porcelain)" |