f9ea2b4471
This introduces functionality for creating strategies for matrices and vectors, as well as an implementation of Arbitrary. Strategies for the geometric types (Point3, Quaternion etc.) are not currently part of this contribution. The current strategy implementation for matrices has some limitations that lead to suboptimal shrinking behavior. This is documented in the module-level docs, with some additional comments in the code.
120 lines
3.3 KiB
YAML
120 lines
3.3 KiB
YAML
version: 2.1
|
|
|
|
executors:
|
|
rust-nightly-executor:
|
|
docker:
|
|
- image: rustlang/rust:nightly
|
|
rust-executor:
|
|
docker:
|
|
- image: rust:latest
|
|
|
|
|
|
jobs:
|
|
check-fmt:
|
|
executor: rust-executor
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: install rustfmt
|
|
command: rustup component add rustfmt
|
|
- run:
|
|
name: check formatting
|
|
command: cargo fmt -- --check
|
|
clippy:
|
|
executor: rust-executor
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: install clippy
|
|
command: rustup component add clippy
|
|
- run:
|
|
name: clippy
|
|
command: cargo clippy
|
|
build-native:
|
|
executor: rust-executor
|
|
steps:
|
|
- checkout
|
|
- run: apt-get update
|
|
- run: apt-get install -y cmake gfortran libblas-dev liblapack-dev
|
|
- run:
|
|
name: build --no-default-feature
|
|
command: cargo build --no-default-features;
|
|
- run:
|
|
name: build (default features)
|
|
command: cargo build;
|
|
- run:
|
|
name: build --all-features
|
|
command: cargo build --all-features
|
|
- run:
|
|
name: build nalgebra-glm
|
|
command: cargo build -p nalgebra-glm --all-features
|
|
- run:
|
|
name: build nalgebra-lapack
|
|
command: cd nalgebra-lapack; cargo build
|
|
test-native:
|
|
executor: rust-executor
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: test
|
|
command: cargo test --features arbitrary --features serde-serialize --features abomonation-serialize --features sparse --features debug --features io --features compare --features libm --features proptest
|
|
- run:
|
|
name: test nalgebra-glm
|
|
command: cargo test -p nalgebra-glm --features arbitrary --features serde-serialize --features abomonation-serialize --features sparse --features debug --features io --features compare --features libm
|
|
build-wasm:
|
|
executor: rust-executor
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: install cargo-web
|
|
command: cargo install -f cargo-web;
|
|
- run:
|
|
name: build --all-features
|
|
command: cargo web build --verbose --target wasm32-unknown-unknown;
|
|
- run:
|
|
name: build nalgebra-glm
|
|
command: cargo build -p nalgebra-glm --all-features
|
|
build-no-std:
|
|
executor: rust-nightly-executor
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: install xargo
|
|
command: cp .circleci/Xargo.toml .; rustup component add rust-src; cargo install -f xargo;
|
|
- run:
|
|
name: build
|
|
command: xargo build --verbose --no-default-features --target=x86_64-unknown-linux-gnu;
|
|
- run:
|
|
name: build --features alloc
|
|
command: xargo build --verbose --no-default-features --features alloc --target=x86_64-unknown-linux-gnu;
|
|
build-nightly:
|
|
executor: rust-nightly-executor
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: build --all-features
|
|
command: cargo build --all-features
|
|
|
|
|
|
workflows:
|
|
version: 2
|
|
build:
|
|
jobs:
|
|
- check-fmt
|
|
- clippy
|
|
- build-native:
|
|
requires:
|
|
- check-fmt
|
|
- build-wasm:
|
|
requires:
|
|
- check-fmt
|
|
- build-no-std:
|
|
requires:
|
|
- check-fmt
|
|
- build-nightly:
|
|
requires:
|
|
- check-fmt
|
|
- test-native:
|
|
requires:
|
|
- build-native
|