This repository has been archived by the owner on Jun 5, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 15
189 lines (160 loc) · 4.86 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
on:
push:
branches:
- master
pull_request:
env:
SKIP_RENDER_SNAPSHOTS: 1
jobs:
rustfmt:
runs-on: ubuntu-latest
name: cargo fmt
steps:
- uses: actions/checkout@v2
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: rustfmt
override: true
- name: cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
test-stable:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macOS-latest, windows-2019, ubuntu-latest]
name: cargo clippy+test
steps:
- uses: actions/checkout@v2
- name: install libx11-dev
run: |
sudo apt update
sudo apt install libx11-dev libpango1.0-dev libxkbcommon-dev libxkbcommon-x11-dev
if: contains(matrix.os, 'ubuntu')
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v2
- name: cargo clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets --features=x11 --no-default-features
# We use --all-targets to skip doc tests; we run them in a parallel task
- name: cargo test
uses: actions-rs/cargo@v1
with:
command: test
args: --all-targets --no-default-features --features=svg,image,x11
# we test the gtk backend as a separate job because gtk install takes
# a long time.
test-stable-gtk:
runs-on: ubuntu-latest
name: cargo test (gtk)
steps:
- uses: actions/checkout@v2
- name: install libgtk-3-dev
run: |
sudo apt update
sudo apt install libgtk-3-dev
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v2
# We use --all-targets to skip doc tests; there are no gtk-specific
# doctests in masonry anyway
- name: cargo test
uses: actions-rs/cargo@v1
with:
command: test
args: --all-targets --features=svg,image
test-stable-wasm:
runs-on: macOS-latest
name: cargo test (wasm32)
steps:
- uses: actions/checkout@v2
- name: install wasm-pack
uses: jetli/[email protected]
with:
version: latest
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
components: clippy
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v2
# We use --all-targets to skip doc tests; there are no wasm-specific
# doctests in masonry anyway
- name: cargo test
uses: actions-rs/cargo@v1
with:
command: test
# TODO: Add svg feature when it's no longer broken with wasm
args: --all-targets --features=image --no-run --target wasm32-unknown-unknown
doctest-stable:
runs-on: macOS-latest
name: doctests
steps:
- uses: actions/checkout@v2
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v2
- name: cargo test --doc
uses: actions-rs/cargo@v1
with:
command: test
args: --doc --no-default-features --features=svg,image
# This tests the future rust compiler to catch errors ahead of time without
# breaking CI
# We only run on a single OS to save time; this might let some errors go
# undetected until the compiler updates and they break CI; but that should
# happen rarely, and not pose too much of a problem when it does.
test-beta:
runs-on: macOS-latest
name: cargo clippy+check beta
steps:
- uses: actions/checkout@v2
- name: install beta toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: beta
components: clippy
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v2
- name: cargo check
uses: actions-rs/cargo@v1
with:
command: check
args: --no-default-features --features=x11
continue-on-error: true
- name: cargo clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets --no-default-features --features=x11,svg,image
continue-on-error: true