Commit 832994e
authored
ci(guards): run every guard the job names, and compile docs-only pull requests (#474)
* ci(guards): run every guard the job names, and compile docs-only pull requests
The "Architecture and Documentation Guards" job selected eight test classes
while scoping the reactor to graph-compose-core. Two had been deleted months
earlier; two live in graph-compose-qa and graph-compose-render-pdf. Surefire
aborts only when a selection is entirely empty, so the four names that did
match kept the job green while it ran half of what it advertised.
The list is now the five guards that live in the engine module, and
CiGuardListGuardTest parses the workflow and fails the job when a name in it
stops resolving under core/src/test/java — inside the very job it protects.
Markdown was also missing from change detection, so a pull request touching
only .md skipped the reactor build entirely and merged without
DocumentationSnippetCompileTest ever compiling the java fences it publishes.
A separate `docs` filter routes those changes into the reactor slice that
carries the qa guards, on the baseline JDK; example generation stays gated on
`code`, since rendering the catalogue proves nothing about prose.
PackageMapGuardTest scanned gitignored docs/private/, where a local note
routinely names a retired package in order to record that it is retired. A hit
there fails the release runbook's local verify gate for a reason CI can never
reproduce, so the directory is excluded — as CanonicalSurfaceGuardTest already
excludes it.
Three workflow comments claimed things that are not true: that render-docx,
render-pptx and graph-compose-testing are absent from Maven Central (they are
published; the examples pin them to the reactor's -SNAPSHOT), that the pptx
module is a semantic backend (its primary backend is fixed-layout), and that
the CodeQL scope matches the canonical verify gate (it is narrower, and the
render backends ship unscanned).
graph-compose-render-pptx compiles against org.apache.pdfbox types while
declaring only fontbox; the dependency is now explicit. Both modules pin
pdfbox.version to 3.0.8, so the resolved version is unchanged.
* ci(guards): run the guard-list tripwire in the job it guards, and resolve wildcards
CiGuardListGuardTest asserted that every name in the workflow's -Dtest list
resolves under core/src/test/java, and its own Javadoc claimed it "runs inside
the very job it protects". It was not in that list. It ran only in the full
reactor build, so a phantom name added to the guard step would still have
passed the guard step. Adding the test to the list makes the claim true and
costs nothing — it is core-resident like the other five.
Wildcard selectors were accepted without resolving them. A pattern that matches
nothing is the same silent skip as a deleted class name: Surefire drops it as
long as a sibling matches. Every accepted form is now resolved against the tree
— plain name, package-qualified name, #method suffix and glob alike — by
translating the selector to a regex (** spans packages, * and ? stay inside one
segment) and matching it against both the simple name and the package path of
each test source.
Exercising that surfaced a defect in the parser itself: the character class
reading the -Dtest value omitted '?', so a selector containing one was silently
truncated and the guard then checked a name nobody wrote. '?', '/', '!' and '+'
are now admitted, and a leading '!' marks an exclusion — it subtracts from the
selection rather than claiming coverage, so it is skipped rather than required
to resolve.1 parent fe6bbdd commit 832994e
7 files changed
Lines changed: 287 additions & 25 deletions
File tree
- .github/workflows
- core/src/test/java/com/demcha/documentation
- render-pptx
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
49 | 56 | | |
50 | 57 | | |
51 | | - | |
| 58 | + | |
52 | 59 | | |
53 | 60 | | |
54 | 61 | | |
55 | 62 | | |
56 | 63 | | |
57 | | - | |
| 64 | + | |
| 65 | + | |
58 | 66 | | |
59 | 67 | | |
60 | 68 | | |
61 | 69 | | |
62 | 70 | | |
63 | 71 | | |
64 | 72 | | |
| 73 | + | |
65 | 74 | | |
66 | 75 | | |
67 | 76 | | |
| |||
86 | 95 | | |
87 | 96 | | |
88 | 97 | | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
89 | 108 | | |
90 | 109 | | |
91 | 110 | | |
| |||
119 | 138 | | |
120 | 139 | | |
121 | 140 | | |
122 | | - | |
123 | | - | |
124 | | - | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
125 | 147 | | |
126 | 148 | | |
127 | 149 | | |
| |||
158 | 180 | | |
159 | 181 | | |
160 | 182 | | |
161 | | - | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
162 | 186 | | |
163 | 187 | | |
164 | 188 | | |
| |||
189 | 213 | | |
190 | 214 | | |
191 | 215 | | |
192 | | - | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
193 | 219 | | |
194 | 220 | | |
195 | 221 | | |
| |||
214 | 240 | | |
215 | 241 | | |
216 | 242 | | |
217 | | - | |
218 | | - | |
219 | | - | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
220 | 247 | | |
221 | 248 | | |
222 | 249 | | |
| |||
235 | 262 | | |
236 | 263 | | |
237 | 264 | | |
238 | | - | |
239 | | - | |
240 | | - | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
241 | 269 | | |
242 | 270 | | |
243 | 271 | | |
244 | 272 | | |
245 | | - | |
246 | | - | |
247 | | - | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
248 | 276 | | |
249 | 277 | | |
250 | 278 | | |
251 | 279 | | |
252 | | - | |
253 | | - | |
| 280 | + | |
| 281 | + | |
254 | 282 | | |
255 | 283 | | |
256 | 284 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
57 | 61 | | |
58 | 62 | | |
59 | 63 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
229 | | - | |
230 | | - | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
231 | 233 | | |
232 | 234 | | |
233 | 235 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
8 | 26 | | |
9 | 27 | | |
10 | 28 | | |
| |||
0 commit comments