-
Notifications
You must be signed in to change notification settings - Fork 131
205 lines (186 loc) · 9.38 KB
/
Copy pathversion-checks.yaml
File metadata and controls
205 lines (186 loc) · 9.38 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
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
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
name: Version Consistency Checks
on:
push:
branches-ignore:
- "gh-readonly-queue/**"
pull_request:
merge_group:
concurrency:
group: ${{ github.workflow }}-${{ github.event.compare || github.head_ref || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
check-version-consistency:
name: Check Version Consistency
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
# All check steps use `if: '!cancelled()'` to ensure all checks run even if earlier ones fail,
# while still respecting manual workflow cancellations. The job will fail if any check fails.
- name: Check wdk-build version (README vs crates/wdk-build)
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: README.md
file1-label: "Repo README.md"
file1-version-regex: 'wdk-build\s*=\s*"\K[^"]+'
file1-version-label: "wdk-build version in README"
file2: crates/wdk-build/Cargo.toml
file2-version-regex: '^version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-build crate version"
error-message: "Please update README.md to match the wdk-build crate's version."
- name: Check wdk-sys and wdk-macros lockstep versioning
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/wdk-sys/Cargo.toml
file1-version-regex: '^version\s*=\s*"\K[^"]+'
file1-version-label: "wdk-sys crate version"
file2: crates/wdk-macros/Cargo.toml
file2-version-regex: '^version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-macros crate version"
error-message: "These crates must be versioned in lockstep because: (1) wdk-macros is a proc-macro crate that should only be consumed through wdk-sys re-exports, and (2) the two crates form a tightly coupled API surface. When updating either crate, both versions must be bumped together."
- name: Check workspace wdk-macros dependency version matches wdk-sys crate version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: Cargo.toml
file1-label: "workspace Cargo.toml"
file1-version-regex: 'wdk-macros\s*=\s*\{[^}]*version\s*=\s*"=\K[^"]+'
file1-version-label: "workspace wdk-macros dependency version"
file2: crates/wdk-sys/Cargo.toml
file2-version-regex: '^version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-sys crate version"
error-message: "The workspace dependency must use an exact version constraint of wdk-macros which matches wdk-sys to enforce lockstep versioning"
# Template version checks - ensure cargo-wdk templates use latest dep
# versions by comparing them against those in the workspace's Cargo.toml file
- name: Check KMDF template wdk version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/kmdf/Cargo.toml.tmp
file1-version-regex: '^wdk\s*=\s*"\K[^"]+'
file1-version-label: "wdk version in KMDF template"
file2: Cargo.toml
file2-version-regex: '^wdk\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk workspace dependency version"
- name: Check KMDF template wdk-build version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/kmdf/Cargo.toml.tmp
file1-version-regex: '^wdk-build\s*=\s*"\K[^"]+'
file1-version-label: "wdk-build version in KMDF template"
file2: Cargo.toml
file2-version-regex: '^wdk-build\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-build workspace dependency version"
- name: Check KMDF template wdk-alloc version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/kmdf/Cargo.toml.tmp
file1-version-regex: '^wdk-alloc\s*=\s*"\K[^"]+'
file1-version-label: "wdk-alloc version in KMDF template"
file2: Cargo.toml
file2-version-regex: '^wdk-alloc\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-alloc workspace dependency version"
- name: Check KMDF template wdk-panic version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/kmdf/Cargo.toml.tmp
file1-version-regex: '^wdk-panic\s*=\s*"\K[^"]+'
file1-version-label: "wdk-panic version in KMDF template"
file2: Cargo.toml
file2-version-regex: '^wdk-panic\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-panic workspace dependency version"
- name: Check KMDF template wdk-sys version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/kmdf/Cargo.toml.tmp
file1-version-regex: '^wdk-sys\s*=\s*"\K[^"]+'
file1-version-label: "wdk-sys version in KMDF template"
file2: Cargo.toml
file2-version-regex: '^wdk-sys\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-sys workspace dependency version"
- name: Check UMDF template wdk version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/umdf/Cargo.toml.tmp
file1-version-regex: '^wdk\s*=\s*"\K[^"]+'
file1-version-label: "wdk version in UMDF template"
file2: Cargo.toml
file2-version-regex: '^wdk\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk workspace dependency version"
- name: Check UMDF template wdk-build version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/umdf/Cargo.toml.tmp
file1-version-regex: '^wdk-build\s*=\s*"\K[^"]+'
file1-version-label: "wdk-build version in UMDF template"
file2: Cargo.toml
file2-version-regex: '^wdk-build\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-build workspace dependency version"
- name: Check UMDF template wdk-sys version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/umdf/Cargo.toml.tmp
file1-version-regex: '^wdk-sys\s*=\s*"\K[^"]+'
file1-version-label: "wdk-sys version in UMDF template"
file2: Cargo.toml
file2-version-regex: '^wdk-sys\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-sys workspace dependency version"
- name: Check WDM template wdk version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/wdm/Cargo.toml.tmp
file1-version-regex: '^wdk\s*=\s*"\K[^"]+'
file1-version-label: "wdk version in WDM template"
file2: Cargo.toml
file2-version-regex: '^wdk\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk workspace dependency version"
- name: Check WDM template wdk-build version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/wdm/Cargo.toml.tmp
file1-version-regex: '^wdk-build\s*=\s*"\K[^"]+'
file1-version-label: "wdk-build version in WDM template"
file2: Cargo.toml
file2-version-regex: '^wdk-build\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-build workspace dependency version"
- name: Check WDM template wdk-alloc version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/wdm/Cargo.toml.tmp
file1-version-regex: '^wdk-alloc\s*=\s*"\K[^"]+'
file1-version-label: "wdk-alloc version in WDM template"
file2: Cargo.toml
file2-version-regex: '^wdk-alloc\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-alloc workspace dependency version"
- name: Check WDM template wdk-panic version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/wdm/Cargo.toml.tmp
file1-version-regex: '^wdk-panic\s*=\s*"\K[^"]+'
file1-version-label: "wdk-panic version in WDM template"
file2: Cargo.toml
file2-version-regex: '^wdk-panic\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-panic workspace dependency version"
- name: Check WDM template wdk-sys version
if: '!cancelled()'
uses: ./.github/actions/compare-regex-versions
with:
file1: crates/cargo-wdk/templates/wdm/Cargo.toml.tmp
file1-version-regex: '^wdk-sys\s*=\s*"\K[^"]+'
file1-version-label: "wdk-sys version in WDM template"
file2: Cargo.toml
file2-version-regex: '^wdk-sys\s*=\s*\{[^}]*version\s*=\s*"\K[^"]+'
file2-version-label: "wdk-sys workspace dependency version"