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-support --features slow-tests - 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 --features proptest-support --features slow-tests - run: name: test nalgebra-sparse # Manifest-path is necessary because cargo otherwise won't correctly forward features # We increase number of proptest cases to hopefully catch more potential bugs command: PROPTEST_CASES=10000 cargo test --manifest-path=nalgebra-sparse/Cargo.toml --features compare,proptest-support - run: name: test nalgebra-sparse (slow tests) # Unfortunately, the "slow-tests" take so much time that we need to run them with --release command: PROPTEST_CASES=10000 cargo test --release --manifest-path=nalgebra-sparse/Cargo.toml --features compare,proptest-support,slow-tests slow 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