-
Notifications
You must be signed in to change notification settings - Fork 4
132 lines (111 loc) · 3.03 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
name: CI
on:
pull_request:
push:
branches:
- main
env:
RUST_BACKTRACE: 1
jobs:
style:
name: Check Style
runs-on: ubuntu-latest
steps:
- name: Free Disk Space
uses: jlumbroso/free-disk-space@main
with:
tool-cache: true
- name: Checkout
uses: actions/checkout@v1
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt
- name: cargo fmt --check
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
test:
name: Test
needs: [style]
runs-on: ubuntu-latest
env:
RUSTFLAGS: -Dwarnings
strategy:
matrix:
rust:
- nightly
- beta
- stable
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Rust (${{ matrix.rust }})
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
components: llvm-tools-preview
- name: Install libssl-dev
run: sudo apt-get update && sudo apt-get install libssl-dev
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Build
uses: actions-rs/cargo@v1
if: matrix.rust == 'nightly' || matrix.rust == 'beta'
with:
command: build --features=ntex-net/tokio
- name: Run lib tests and doc tests
uses: actions-rs/cargo@v1
if: matrix.rust == 'nightly' || matrix.rust == 'beta'
with:
command: test --features=ntex-net/tokio
- name: Generate code coverage
run: cargo llvm-cov --no-report --features=ntex-net/tokio
if: matrix.rust == 'stable'
#- name: Run integration tests
# uses: actions-rs/cargo@v1
# with:
# command: test
# args: -p h2-tests
- name: Run h2spec
run: ./tests/h2spec.sh
if: matrix.rust == 'stable'
# - name: Check minimal versions
# run: cargo clean; cargo update -Zminimal-versions; cargo check
# if: matrix.rust == 'nightly'
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
if: matrix.rust == 'stable'
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info
fail_ci_if_error: true
msrv:
name: Check MSRV (${{ matrix.rust }})
needs: [style]
strategy:
matrix:
rust:
- 1.75 # never go past ntex's msrv
os:
- ubuntu-latest
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Rust (${{ matrix.rust }})
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- name: Check
uses: actions-rs/cargo@v1
with:
command: check