-
Notifications
You must be signed in to change notification settings - Fork 4
137 lines (133 loc) · 3.54 KB
/
main.yaml
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
name: Main
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
linux:
runs-on: self-hosted
strategy:
matrix:
version:
- nightly
- beta
- stable
target:
- x86_64-unknown-linux-gnu
- x86_64-unknown-linux-musl
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.version }}
override: true
components: rustfmt
- name: clean
run: cargo clean
- name: build
run: cargo build --features full
env:
RUST_BACKTRACE: 1
- name: test
run: cargo test --features full -- --test-threads=1
env:
RUST_BACKTRACE: 1
- name: ignored test
run: cargo test --features full -- --ignored || true
env:
RUST_BACKTRACE: 1
if: matrix.version == 'nightly'
- name: check formatting
run: cargo fmt -- --check
- name: install audit
run: cargo install cargo-audit
- name: audit check
run: cargo audit
windows:
runs-on: windows-latest
strategy:
matrix:
version:
# - nightly
# - beta
- stable
target:
- x86_64-pc-windows-gnu
# - x86_64-pc-windows-msvc
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.version }}
override: true
- name: install
run: |
git clone https://github.com/Microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh
vcpkg integrate install
vcpkg install openssl:x64-windows-static-md
- name: build
run: cargo build --features full
- name: test
run: cargo test --features full -- --test-threads=1 || true
env:
RUST_BACKTRACE: 1
- name: install audit
run: cargo install cargo-audit
- name: audit check
run: cargo audit
mac:
runs-on: macos-latest
strategy:
matrix:
version:
- stable
# - beta
# - nightly
target:
- x86_64-apple-darwin
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.version }}
override: true
- name: build
run: cargo build --features full
- name: test
run: cargo test --features full -- --test-threads=1 || true
env:
RUST_BACKTRACE: 1
- name: install audit
run: cargo install cargo-audit
- name: audit check
run: cargo audit
coverage:
runs-on: ubuntu-latest
name: ubuntu / stable / coverage
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install stable
uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- name: cargo install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: cargo generate-lockfile
if: hashFiles('Cargo.lock') == ''
run: cargo generate-lockfile
- name: cargo llvm-cov
run: cargo llvm-cov --locked --all-features --lcov --output-path lcov.info
- name: Upload to codecov.io
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true