nalgebra/.github/workflows/nalgebra-ci-build.yml

146 lines
5.4 KiB
YAML
Raw Normal View History

2021-03-01 17:39:20 +08:00
name: nalgebra CI build
on:
push:
branches: [ dev, master ]
2021-03-01 17:39:20 +08:00
pull_request:
branches: [ dev, master ]
2021-03-01 17:39:20 +08:00
env:
CARGO_TERM_COLOR: always
jobs:
check-fmt:
2021-03-01 19:16:10 +08:00
runs-on: ubuntu-latest
2021-03-01 17:39:20 +08:00
steps:
- uses: actions/checkout@v2
- name: Check formatting
run: cargo fmt -- --check
clippy:
2021-03-01 19:16:10 +08:00
runs-on: ubuntu-latest
2021-03-01 17:39:20 +08:00
steps:
2021-03-01 19:16:10 +08:00
- uses: actions/checkout@v2
2021-03-01 17:39:20 +08:00
- name: Install clippy
run: rustup component add clippy
- name: Run clippy
run: cargo clippy
build-nalgebra:
2021-03-01 19:16:10 +08:00
runs-on: ubuntu-latest
2021-03-01 17:39:20 +08:00
# env:
# RUSTFLAGS: -D warnings
2021-11-23 20:16:28 +08:00
steps:
2021-03-01 17:39:20 +08:00
- uses: actions/checkout@v2
- name: Build --no-default-feature
run: cargo build --no-default-features;
- name: Build (default features)
run: cargo build;
- name: Build --features serde-serialize
run: cargo build --features serde-serialize
2021-03-01 17:39:20 +08:00
- name: Build nalgebra-lapack
run: cd nalgebra-lapack; cargo build;
- name: Build nalgebra-sparse --no-default-features
run: cd nalgebra-sparse; cargo build --no-default-features;
- name: Build nalgebra-sparse (default features)
2021-03-01 17:39:20 +08:00
run: cd nalgebra-sparse; cargo build;
- name: Build nalgebra-sparse --all-features
run: cd nalgebra-sparse; cargo build --all-features;
2021-11-23 20:57:30 +08:00
# Run this on its own job because it alone takes a lot of time.
# So its best to let it run in parallel to the other jobs.
build-nalgebra-all-features:
runs-on: ubuntu-latest
steps:
# Needed because the --all-features build which enables cuda support.
- uses: Jimver/cuda-toolkit@v0.2.8
2021-11-23 20:57:30 +08:00
- uses: actions/checkout@v2
- run: cargo build --all-features;
- run: cargo build -p nalgebra-glm --all-features;
test-nalgebra:
2021-03-01 19:16:10 +08:00
runs-on: ubuntu-latest
2021-03-01 17:39:20 +08:00
# env:
# RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v2
- name: test
2022-11-13 00:57:27 +08:00
run: cargo test --features arbitrary,rand,serde-serialize,sparse,debug,io,compare,libm,proptest-support,slow-tests,rkyv-safe-deser,rayon;
test-nalgebra-glm:
2021-03-01 19:57:12 +08:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
2021-03-01 17:39:20 +08:00
- name: test nalgebra-glm
run: cargo test -p nalgebra-glm --features arbitrary,serde-serialize;
test-nalgebra-sparse:
2021-03-01 19:57:12 +08:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
2021-03-01 17:39:20 +08:00
- 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
run: PROPTEST_CASES=10000 cargo test --manifest-path=nalgebra-sparse/Cargo.toml --features compare,proptest-support,io,serde-serialize
2021-03-01 17:39:20 +08:00
- name: test nalgebra-sparse (slow tests)
# Unfortunately, the "slow-tests" take so much time that we need to run them with --release
run: PROPTEST_CASES=10000 cargo test --release --manifest-path=nalgebra-sparse/Cargo.toml --features compare,proptest-support,io,serde-serialize,slow-tests slow
2021-04-30 23:16:18 +08:00
test-nalgebra-macros:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: test nalgebra-macros
run: cargo test -p nalgebra-macros
2021-03-01 17:39:20 +08:00
build-wasm:
2021-03-01 19:16:10 +08:00
runs-on: ubuntu-latest
2021-03-01 17:39:20 +08:00
# env:
# RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v2
- run: rustup target add wasm32-unknown-unknown
- name: build nalgebra
run: cargo build --verbose --target wasm32-unknown-unknown;
- name: build nalgebra-glm
run: cargo build -p nalgebra-glm --verbose --target wasm32-unknown-unknown;
build-no-std:
2021-03-01 19:16:10 +08:00
runs-on: ubuntu-latest
2021-03-01 17:39:20 +08:00
steps:
- uses: actions/checkout@v2
- name: Install latest nightly
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
components: rustfmt
- name: install xargo
run: cp .github/Xargo.toml .; rustup component add rust-src; cargo install -f xargo;
2021-03-02 19:25:12 +08:00
- name: build x86_64-unknown-linux-gnu
2021-03-01 17:39:20 +08:00
run: xargo build --verbose --no-default-features --target=x86_64-unknown-linux-gnu;
2021-03-02 19:25:12 +08:00
- name: build x86_64-unknown-linux-gnu --features rand-no-std
run: xargo build --verbose --no-default-features --target=x86_64-unknown-linux-gnu;
- name: build x86_64-unknown-linux-gnu --features alloc
2021-03-01 17:39:20 +08:00
run: xargo build --verbose --no-default-features --features alloc --target=x86_64-unknown-linux-gnu;
2021-03-02 19:25:12 +08:00
- name: build thumbv7em-none-eabihf
run: xargo build --verbose --no-default-features --target=thumbv7em-none-eabihf;
- name: build x86_64-unknown-linux-gnu nalgebra-glm
run: xargo build --verbose --no-default-features -p nalgebra-glm --target=x86_64-unknown-linux-gnu;
- name: build thumbv7em-none-eabihf nalgebra-glm
run: xargo build --verbose --no-default-features -p nalgebra-glm --target=thumbv7em-none-eabihf;
2021-11-23 20:36:54 +08:00
build-cuda:
runs-on: ubuntu-latest
steps:
- uses: Jimver/cuda-toolkit@v0.2.8
2022-03-12 00:43:01 +08:00
with:
2023-01-13 17:06:49 +08:00
cuda: '11.5.0'
- name: Install nightly-2021-12-04
uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2021-12-04
override: true
- uses: actions/checkout@v2
- run: rustup target add nvptx64-nvidia-cuda
2021-11-23 20:57:30 +08:00
- run: cargo build --no-default-features --features cuda
- run: cargo build --no-default-features --features cuda --target=nvptx64-nvidia-cuda
env:
2022-12-12 12:21:23 +08:00
CUDA_ARCH: "350"
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Generate documentation
run: cargo doc