version: v1.0 name: Rust agent: machine: type: e1-standard-2 os_image: ubuntu1804 containers: - name: main image: 'registry.semaphoreci.com/rust:1.47' blocks: - name: Rustfmt task: jobs: - name: run cargo fmt commands: - checkout - rustup component add rustfmt - cargo fmt -- --check dependencies: [] - name: Clippy dependencies: [] task: jobs: - name: Run clippy commands: - checkout - rustup component add clippy - cargo clippy - name: Build (native) dependencies: [] task: jobs: - name: Build nalgebra commands: - checkout - apt-get install -y cmake gfortran libblas-dev liblapack-dev - cargo build --no-default-features - cargo build - cargo build --all-features - name: Build nalgebra-glm commands: - checkout - cargo build -p nalgebra-glm --all-features - name: Build nalgebra-lapack commands: - checkout - apt-get install -y cmake gfortran libblas-dev liblapack-dev - cd nalgebra-lapack - cargo build - name: Test (native) dependencies: [] task: jobs: - name: Test nalgebra commands: - checkout - 'cargo test --features arbitrary --features serde-serialize,abomonation-serialize,sparse,debug,io,compare,libm,proptest-support,slow-tests' - name: Test nalgebra-glm commands: - checkout - 'cargo test -p nalgebra-glm --features arbitrary,serde-serialize,abomonation-serialize,sparse,debug,io,compare,libm,proptest-support,slow-tests;' - name: Test nalgebra-sparse commands: - checkout - '# Manifest-path is necessary because cargo otherwise won''t correctly forward features' - '# We increase number of proptest cases to hopefully catch more potential bugs' - 'PROPTEST_CASES=10000 cargo test --manifest-path=nalgebra-sparse/Cargo.toml --features compare,proptest-support' - name: Test nalgebra-sparse (slow tests) commands: - checkout - '# Unfortunately, the "slow-tests" take so much time that we need to run them with --release' - 'PROPTEST_CASES=10000 cargo test --release --manifest-path=nalgebra-sparse/Cargo.toml --features compare,proptest-support,slow-tests slow'