Upgrade to better Github Actions for faster and better maintained CI (#390)
1on:
2 pull_request:
3 push:
4 branches:
5 - main
6 - 0.2.x
7 - 0.3.x
8
9name: Continuous integration
10
11jobs:
12 test-features-none:
13 name: "Test Suite [Features: None]"
14 runs-on: ubuntu-latest
15 steps:
16 - uses: actions/checkout@v3
17 - uses: dtolnay/rust-toolchain@stable
18 - run: cargo build --no-default-features
19 - run: cargo test --no-default-features
20
21 test-features-default:
22 name: "Test Suite [Features: Default]"
23 runs-on: ubuntu-latest
24 steps:
25 - uses: actions/checkout@v3
26 - uses: dtolnay/rust-toolchain@stable
27 - run: cargo build
28 - run: cargo test
29
30 test-features-default-with-serde:
31 name: "Test Suite [Features: Default + serde]"
32 runs-on: ubuntu-latest
33 steps:
34 - uses: actions/checkout@v3
35 - uses: dtolnay/rust-toolchain@stable
36 - run: cargo build --features serde
37 - run: cargo test --features serde
38
39 test-features-alloc:
40 name: "Test Suite [Features: alloc]"
41 runs-on: ubuntu-latest
42 steps:
43 - uses: actions/checkout@v3
44 - uses: dtolnay/rust-toolchain@stable
45 - run: cargo build --no-default-features --features alloc,grid
46 - run: cargo test --no-default-features --features alloc,grid
47
48 test-features-alloc-no-grid:
49 name: "Test Suite [Features: alloc (no grid)]"
50 runs-on: ubuntu-latest
51 steps:
52 - uses: actions/checkout@v3
53 - uses: dtolnay/rust-toolchain@stable
54 - run: cargo build --no-default-features --features alloc
55 - run: cargo test --no-default-features --features alloc
56
57 test-features-default-no-grid:
58 name: "Test Suite [Features: std (no grid)]"
59 runs-on: ubuntu-latest
60 steps:
61 - uses: actions/checkout@v3
62 - uses: dtolnay/rust-toolchain@stable
63 - run: cargo build --no-default-features --features std
64 - run: cargo test --no-default-features --features std
65
66 fmt:
67 name: Rustfmt
68 runs-on: ubuntu-latest
69 steps:
70 - uses: actions/checkout@v3
71 - uses: dtolnay/rust-toolchain@stable
72 - uses: dtolnay/rust-toolchain@master
73 with:
74 toolchain: stable
75 components: rustfmt
76 - run: cargo fmt --all -- --check
77
78 clippy:
79 name: Clippy
80 runs-on: ubuntu-latest
81 steps:
82 - uses: actions/checkout@v3
83 - uses: dtolnay/rust-toolchain@master
84 with:
85 toolchain: nightly
86 components: clippy
87 - run: cargo +nightly clippy --workspace -- -D warnings
88
89 doc:
90 name: Documentation
91 runs-on: ubuntu-latest
92 steps:
93 - uses: actions/checkout@v3
94 - uses: dtolnay/rust-toolchain@master
95 with:
96 toolchain: stable
97 components: clippy
98 - run: cargo doc
99 env:
100 RUSTDOCFLAGS: "-D warnings"
101
102 markdownlint:
103 name: Markdown Lint
104 runs-on: ubuntu-latest
105 steps:
106 - uses: actions/checkout@v3
107 with:
108 # Full git history is needed to get a proper list of changed files within `super-linter`
109 fetch-depth: 0
110 - name: Run Markdown Lint
111 uses: docker://ghcr.io/github/super-linter:slim-v4
112 env:
113 VALIDATE_ALL_CODEBASE: true
114 VALIDATE_MARKDOWN: true
115 DEFAULT_BRANCH: master