-
Notifications
You must be signed in to change notification settings - Fork 8
139 lines (110 loc) · 3.04 KB
/
check-test.yaml
File metadata and controls
139 lines (110 loc) · 3.04 KB
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
name: Checks and tests
on:
push:
branches: main
pull_request:
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup environment
uses: ./.github/actions/setup-env
- name: Linting and formatting
run: mise run precommit
unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup environment
uses: ./.github/actions/setup-env
- name: Unit tests
run: mise run test:unit
wasm-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup environment
uses: ./.github/actions/setup-env
- name: Install wasm target
run: rustup target add wasm32-unknown-unknown
- name: WASM tests
run: mise run test:wasm
env:
RUSTFLAGS: '--cfg getrandom_backend="wasm_js"'
hyperfine-smoke:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup environment
uses: ./.github/actions/setup-env
- name: Check single run for hyperfine
run: mise run test:hyperfine
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup environment
uses: ./.github/actions/setup-env
- name: Run examples
run: mise run examples
book-example:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup environment
uses: ./.github/actions/setup-env
- name: Build book example
run: mise run test:book
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup environment
uses: ./.github/actions/setup-env
- name: Build docs
run: mise run docs
setup-new-project:
uses: ./.github/workflows/test-setup-new-project.yaml
all-green:
runs-on: ubuntu-latest
needs:
- lint
- unit-tests
- wasm-tests
- hyperfine-smoke
- examples
- book-example
- docs
- setup-new-project
if: ${{ always() }}
steps:
- name: Verify all checks passed
run: |
set -euo pipefail
results=(
lint:${{ needs.lint.result }}
unit-tests:${{ needs.unit-tests.result }}
wasm-tests:${{ needs.wasm-tests.result }}
hyperfine-smoke:${{ needs.hyperfine-smoke.result }}
examples:${{ needs.examples.result }}
book-example:${{ needs.book-example.result }}
docs:${{ needs.docs.result }}
setup-new-project:${{ needs.setup-new-project.result }}
)
failed=0
for pair in "${results[@]}"; do
job="${pair%%:*}"
result="${pair#*:}"
echo "${job}: ${result}"
if [ "${result}" != "success" ]; then
failed=1
fi
done
if [ "${failed}" -ne 0 ]; then
echo "One or more checks failed."
exit 1
fi