-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (116 loc) · 2.96 KB
/
test.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
name: CI-rust
on:
push:
branches:
- main
paths:
- src/**
- examples/**
- Cargo.toml
- .github/workflows/test.yml
pull_request:
branches:
- main
paths:
- src/**
- examples/**
- Cargo.toml
- .github/workflows/test.yml
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
#ref https://github.com/pola-rs/polars/blob/main/.github/workflows/test-rust.yml
env:
RUSTFLAGS: -C debuginfo=0 # Do not produce debug symbols to keep memory usage down
jobs:
Formatting:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt
- name: Check format
run: cargo fmt -- --check
Linting:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: clippy
- name: Lint with clippy
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
Testing:
needs: Formatting
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
build: [beta, stable, windows, macos]
include:
- build: macos
os: macos-latest
rust: stable
- build: windows
os: windows-latest
rust: stable
- build: beta
os: ubuntu-latest
rust: beta
- build: stable
os: ubuntu-latest
rust: stable
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- name: Install ${{ matrix.rust }} toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- name: Run tests
uses: actions-rs/cargo@v1
with:
command: test
args: --all --no-fail-fast
MSRV:
needs: Formatting
runs-on: ubuntu-latest
env:
MSRV_VERSION: 1.70.0
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install MSRV toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.MSRV_VERSION }}
override: true
- name: check if README matches MSRV defined here
run: grep $MSRV_VERSION README.md
- name: Run tests
uses: actions-rs/cargo@v1
with:
command: test
args: --all --no-fail-fast