-
Notifications
You must be signed in to change notification settings - Fork 12
130 lines (126 loc) · 3.68 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
name: Continuous Integration
env:
RUST_LOG: info
RUST_BACKTRACE: 1
on:
pull_request:
branches: [master]
push:
branches: [master]
jobs:
test:
name: Test
strategy:
matrix:
target:
# Rustc's Tier 1 platforms
# https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-1-with-host-tools
# Windows gnu is not currently working
# - i686-pc-windows-gnu
- i686-pc-windows-msvc
- i686-unknown-linux-gnu
- x86_64-apple-darwin
# Windows gnu is not currently working
# - x86_64-pc-windows-gnu
- x86_64-pc-windows-msvc
- x86_64-unknown-linux-gnu
# Select tier 2 platforms
# https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-2-with-host-tools
- aarch64-apple-darwin
# Windows ARM is not currently working
# - aarch64-pc-windows-msvc
- x86_64-unknown-linux-musl
toolchain:
- stable
# Testability according to cross
# https://github.com/rust-embedded/cross#supported-targets
include:
# - target: i686-pc-windows-gnu
# os: windows-latest
# testable: true
- target: i686-pc-windows-msvc
os: windows-latest
testable: true
- target: i686-unknown-linux-gnu
os: ubuntu-latest
testable: true
- target: x86_64-apple-darwin
os: macos-latest
testable: true
# - target: x86_64-pc-windows-gnu
# os: windows-latest
# testable: true
- target: x86_64-pc-windows-msvc
os: windows-latest
testable: true
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
testable: true
- target: aarch64-apple-darwin
os: macos-latest
testable: false
# - target: aarch64-pc-windows-msvc
# os: windows-latest
# testable: false
- target: x86_64-unknown-linux-musl
os: ubuntu-latest
testable: true
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
target: ${{ matrix.target }}
profile: minimal
components: clippy
- name: Rust Cache
uses: Swatinem/[email protected]
with:
key: ${{ matrix.target }}
- name: Install Cross
uses: actions-rs/[email protected]
with:
crate: cross
use-tool-cache: true
- name: Clippy
uses: actions-rs/cargo@v1
with:
use-cross: true
command: clippy
args: --target ${{ matrix.target }} -- -D warnings
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
use-cross: true
args: --target ${{ matrix.target }}
- name: Test
uses: actions-rs/cargo@v1
if: matrix.testable
with:
command: test
use-cross: true
args: --target ${{ matrix.target }}
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
default: true
profile: minimal
components: rustfmt
- name: Rust Cache
uses: Swatinem/[email protected]
- name: Format
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check