-
Notifications
You must be signed in to change notification settings - Fork 194
131 lines (118 loc) · 3.88 KB
/
ci.yml
File metadata and controls
131 lines (118 loc) · 3.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: CI
on: [push, pull_request]
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: rustup update --no-self-update stable
- run: rustup default stable
# make sure all code has been formatted with rustfmt and linted with clippy
- name: rustfmt
run: cargo fmt -- --check --color always
# run clippy to verify we have no warnings
- run: cargo fetch
- name: cargo clippy
run: cargo clippy --workspace --all-targets --features std,debug-glam-assert,approx,bytemuck,mint,rand,serde,rkyv,speedy,encase,zerocopy,arbitrary -- -D warnings
# check that codegen output matches committed source files
- name: codegen
run: cargo run --release -p codegen -- --check
- name: Build-test documentation
env:
RUSTDOCFLAGS: -Dwarnings
run: cargo doc --all --no-deps --document-private-items --features std,debug-glam-assert,approx,bytemuck,mint,rand,serde,rkyv,speedy,rkyv/pointer_width_32,encase,zerocopy,arbitrary
test:
name: Test
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
toolchain: [stable, beta, nightly]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: rustup update --no-self-update ${{ matrix.toolchain }}
- run: rustup default ${{ matrix.toolchain }}
- run: ./build_and_test_features.sh
shell: bash
check-msrv:
name: Check MSRV
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
toolchain: [1.68.2]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: rustup update --no-self-update ${{ matrix.toolchain }}
- run: rustup default ${{ matrix.toolchain }}
- run: ./build_all_msrv.sh
shell: bash
test-core-simd:
name: Test portable simd
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
toolchain: [nightly]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: rustup update --no-self-update ${{ matrix.toolchain }}
- run: rustup default ${{ matrix.toolchain }}
- run: cargo test --features core-simd
shell: bash
test-wasm32:
name: Test wasm32
strategy:
matrix:
toolchain: [stable]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- run: ./build_and_test_wasm32_node.sh
- run: ./build_and_test_wasm32_firefox.sh
- run: ./build_and_test_wasm32_chrome.sh
test-wasm64:
name: Test wasm64
strategy:
matrix:
toolchain: [nightly]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
with:
submodules: true
- run: rustup component add rust-src --toolchain ${{ matrix.toolchain }}
- uses: bytecodealliance/actions/wasmtime/setup@v1
- run: ./build_and_test_wasm64.sh
# macos-latest uses aarch64 so using cross shouldn't be necessary anymore
# test-arm:
# name: Test Arm
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# target:
# - aarch64-unknown-linux-gnu
# - arm-unknown-linux-gnueabi
# steps:
# - uses: actions/checkout@v4
# - run: rustup update --no-self-update stable
# - run: rustup default stable
# - run: rustup target add --toolchain stable ${{matrix.target}}
# - uses: taiki-e/install-action@cross
# - run: cross test --target ${{matrix.target}}