-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (119 loc) · 3.36 KB
/
ci.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
on:
pull_request:
branches: [main]
push:
branches: [main]
name: CI
env:
RUSTDOCFLAGS: "-Dwarnings"
jobs:
build:
name: Build
runs-on: ubuntu-latest
strategy:
matrix:
target:
- x86_64-unknown-linux-gnu
toolchain:
- stable
- nightly
- beta
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
- name: Run cargo build
run: cargo build --release --target ${{ matrix.target }}
check:
name: Check
runs-on: ubuntu-latest
strategy:
matrix:
steps:
- name: cargo check
run: cargo check --all-targets --all-features
- name: cargo hack check
run: cargo hack check --no-private --feature-powerset --no-dev-deps --skip docs,axum,sni,tls-ring,tls-aws-lc
hack: true
- name: cargo hack check --each-feature
run: cargo hack check --no-private --each-feature --no-dev-deps
hack: true
- name: cargo doc
run: cargo doc --all-features --no-deps
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- uses: taiki-e/install-action@cargo-hack
if: matrix.steps.hack
- name: ${{ matrix.steps.name }}
run: ${{ matrix.steps.run }}
msrv:
name: MSRV 1.74
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.74.0
- name: Run cargo build
run: cargo check --all-targets --all-features
test:
name: Tests
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- stable
- beta
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
- name: Build cargo tests
run: cargo test --features axum,sni,tls,tls-ring --no-run
- name: Run cargo test
run: cargo test --features axum,sni,tls,tls-ring
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: rustfmt, clippy
- name: Run cargo fmt
run: cargo fmt --all -- --check
- name: Run cargo clippy
uses: actions-rs/clippy-check@v1
if: github.repository_owner == 'linode-sokka'
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features -- -D warnings
- name: Run cargo clippy
if: github.repository_owner != 'linode-sokka'
run: cargo clippy --all-features -- -D warnings
deny:
name: Deny
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run cargo deny
uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check bans licenses sources