Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add runtime dataset fetch and parse in-place #186

Merged
merged 14 commits into from
Feb 9, 2022
75 changes: 48 additions & 27 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,66 +19,87 @@ jobs:
- beta
- nightly
- 1.56.1
env:
RUSTFLAGS: "-C target-cpu=native -C opt-level=3"
ROARINGRS_BENCH_OFFLINE: "true"

steps:
- uses: actions/checkout@v2
- name: Checkout roaring-rs
uses: actions/checkout@v2

- uses: actions-rs/toolchain@v1
- name: Checkout benchmark datasets
uses: actions/checkout@v2
with:
repository: "RoaringBitmap/real-roaring-datasets"
path: "benchmarks/real-roaring-datasets"

- name: Initialize rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
components: rustfmt, clippy

- uses: actions-rs/cargo@v1
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --all-targets

- uses: actions-rs/cargo@v1
- name: Build benchmarks
uses: actions-rs/cargo@v1
with:
command: test
command: build
args: --manifest-path benchmarks/Cargo.toml --all-targets

- uses: actions-rs/cargo@v1
- name: Check
uses: actions-rs/cargo@v1
with:
command: test
args: --benches --manifest-path benchmarks/Cargo.toml
command: clippy
args: --all-targets -- -D warnings

- uses: actions-rs/cargo@v1
- name: Check benchmarks
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path benchmarks/Cargo.toml --all-targets -- -D warnings

- name: Check formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check

- uses: actions-rs/cargo@v1
- name: Check benchmark formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: --manifest-path benchmarks/Cargo.toml -- --check

- uses: actions-rs/cargo@v1
- name: Test
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets -- -D warnings
simd:
name: SIMD Feature
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
command: test

- uses: actions-rs/toolchain@v1
- name: Test benchmarks
uses: actions-rs/cargo@v1
with:
profile: minimal
toolchain: nightly
override: true
components: rustfmt, clippy
command: test
args: --manifest-path benchmarks/Cargo.toml --benches

- uses: actions-rs/cargo@v1
- name: SIMD test
if: matrix.rust == 'nightly'
uses: actions-rs/cargo@v1
with:
toolchain: nightly
command: test
args: --features "simd"

- uses: actions-rs/cargo@v1
- name: SIMD test benchmarks
if: matrix.rust == 'nightly'
uses: actions-rs/cargo@v1
with:
toolchain: nightly
command: test
args: --features "simd" --benches --manifest-path benchmarks/Cargo.toml
args: --manifest-path benchmarks/Cargo.toml --features "simd"
17 changes: 17 additions & 0 deletions benchmarks/benches/datasets.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,23 @@ fn init_datasets() -> Result<PathBuf, Box<dyn std::error::Error>> {
let out_path = Path::new(&out_dir);
let repo_path = out_path.join("real-roaring-datasets");

// Check if in offline mode

let offline = env::var("ROARINGRS_BENCH_OFFLINE");
match offline {
Ok(value) => {
if value.parse::<bool>()? {
return Ok(repo_path);
}
}
Err(ref err) => match err {
env::VarError::NotPresent => (),
_ => {
offline?;
}
},
};

// Setup progress callbacks

let pb_cell = once_cell::unsync::OnceCell::new();
Expand Down