-
Notifications
You must be signed in to change notification settings - Fork 7
131 lines (102 loc) · 3.17 KB
/
Copy pathrust.yml
File metadata and controls
131 lines (102 loc) · 3.17 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: Build
on:
push:
branches: [ "main" ]
pull_request:
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
debug_build:
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-pc-windows-msvc
os: windows-latest
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
- target: aarch64-unknown-linux-gnu
os: ubuntu-24.04-arm
- target: aarch64-apple-darwin
os: macos-latest
runs-on: ${{ matrix.os }}
name: ${{ matrix.target }} (debug)
steps:
- uses: actions/checkout@v6
- uses: Swatinem/rust-cache@v2
- name: Add target
run: rustup target add ${{ matrix.target }}
- name: Build
run: cargo build --locked --verbose --target ${{ matrix.target }}
- name: Run tests
run: cargo test --locked --verbose --all-features --target ${{ matrix.target }}
- name: Test cargo-nfs3-server
run: cargo run -p nfs3_tests --bin test_mirror_fs --locked --target ${{ matrix.target }}
release_build:
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-pc-windows-msvc
os: windows-latest
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
- target: aarch64-unknown-linux-gnu
os: ubuntu-24.04-arm
- target: aarch64-apple-darwin
os: macos-latest
runs-on: ${{ matrix.os }}
name: ${{ matrix.target }} (release)
steps:
- uses: actions/checkout@v6
- uses: Swatinem/rust-cache@v2
- name: Add target
run: rustup target add ${{ matrix.target }}
- name: Build
run: cargo build --release --locked --verbose --target ${{ matrix.target }}
- name: Run tests
run: cargo test --release --locked --verbose --all-features --target ${{ matrix.target }}
- name: Test cargo-nfs3-server
run: cargo run -p nfs3_tests --bin test_mirror_fs --locked --target ${{ matrix.target }}
msrv_build:
runs-on: ubuntu-latest
name: MSRV Build
steps:
- uses: actions/checkout@v6
- uses: Swatinem/rust-cache@v2
- name: Get MSRV
id: msrv
shell: pwsh
run: |
$msrv = Select-String '^rust-version' Cargo.toml | Select-Object -First 1 | ForEach-Object {
($_ -split '"')[1]
}
"msrv=$msrv" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: Install toolchain
run: rustup install ${{ steps.msrv.outputs.msrv }}
- name: Build
run: cargo +${{ steps.msrv.outputs.msrv }} build --locked --verbose
code_guidelines:
runs-on: ubuntu-latest
name: Code guidelines
steps:
- uses: actions/checkout@v6
- name: Update Rust
run: |
rustup update
rustup toolchain install nightly
rustup component add --toolchain nightly rustfmt
- name: fmt
run: cargo +nightly fmt --check
- name: clippy
run: cargo clippy --locked --all-targets --all-features -- -D warnings
- name: machete
uses: bnjbvr/cargo-machete@main
linelint:
runs-on: ubuntu-latest
name: Linelint
steps:
- uses: actions/checkout@v6
- uses: fernandrone/linelint@0.0.6
id: linelint