-
Notifications
You must be signed in to change notification settings - Fork 3
151 lines (123 loc) · 3.78 KB
/
rust.yml
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
name: Rust CI
on:
push:
branches:
- main
pull_request:
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
# See: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency.
# This will ensure that only one commit will be running tests at a time on each PR.
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
check:
strategy:
matrix:
rust: ["stable", "nightly"]
#os: [ubuntu-latest, macos-latest, windows-2019]
# TEMPORARY CHANGE until better solution with shellfish is found
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Cache Cargo registry
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.toml') }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Test Rast library
run: cargo +${{ matrix.rust }} test --manifest-path rast/Cargo.toml
- name: Test Rast agent
run: cargo +${{ matrix.rust }} test --manifest-path rast-agent/Cargo.toml
- name: Test Rast C2
run: cargo +${{ matrix.rust }} test --manifest-path rast-c2/Cargo.toml
- name: Test Rast CLI
run: cargo +${{ matrix.rust }} test --manifest-path rast-cli/Cargo.toml
clippy:
runs-on: ubuntu-latest
needs: ['check']
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Cache Cargo registry
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.toml') }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@beta
with:
components: clippy
- name: Run clippy
run: cargo clippy -- -Dclippy::all -Wclippy::pedantic
rustfmt:
runs-on: ubuntu-latest
needs: ['check']
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Cache Cargo registry
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.toml') }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: Run fmt
run: cargo fmt --all -- --check
miri:
runs-on: ubuntu-latest
needs: ['check']
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Cache Cargo registry
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.toml') }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
with:
components: miri
- name: Setup Miri
run: cargo miri setup
- name: Run Miri
run: cargo miri test
machete:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout source
uses: actions/checkout@v3
- name: Cache Cargo registry
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.toml') }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
- name: Install Cargo Machete
run: cargo install cargo-machete
- name: Run Machete
run: cargo machete