Gate Bento releases on clippy and tests
Both recipes run a prebuild step before build: clippy -D warnings, then the
test suite, with the release features. sh_ok aborts the recipe on failure and
a failed step bars publish, so no artifact is built or shipped from code that
fails either.
The gate turned up a lint in bb-pdf: render_markdown iterated a Parser with
while-let. The .peekable() it was built with had no other reader, so the loop
is a plain for.
BB does not pass the gate yet -- the rest of its clippy backlog is tracked
separately, along with a plugin test that fetches from dev.to over the live
network and hangs the suite.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3 files changed,
+16 insertions,
-2 deletions
| 106 |
106 |
|
|
| 107 |
107 |
|
fn render_markdown(&mut self, md: &str) {
|
| 108 |
108 |
|
let opts = Options::ENABLE_STRIKETHROUGH;
|
| 109 |
|
- |
let mut parser = Parser::new_ext(md, opts).peekable();
|
|
109 |
+ |
let parser = Parser::new_ext(md, opts);
|
| 110 |
110 |
|
let mut style_stack: Vec<Style> = vec![Style::body()];
|
| 111 |
111 |
|
let mut list_stack: Vec<Option<u64>> = Vec::new();
|
| 112 |
112 |
|
let mut buf = String::new();
|
| 113 |
113 |
|
|
| 114 |
|
- |
while let Some(event) = parser.next() {
|
|
114 |
+ |
for event in parser {
|
| 115 |
115 |
|
match event {
|
| 116 |
116 |
|
Event::Start(tag) => match tag {
|
| 117 |
117 |
|
Tag::Heading { level, .. } => {
|
| 18 |
18 |
|
step("checkout");
|
| 19 |
19 |
|
sh_ok(h, "cd " + r + " && git pull --ff-only");
|
| 20 |
20 |
|
|
|
21 |
+ |
// Gate: no artifact is built from code that fails clippy or its tests. It runs
|
|
22 |
+ |
// on this target's own build host, so a break confined to one platform is
|
|
23 |
+ |
// caught where it would have shipped.
|
|
24 |
+ |
step("prebuild");
|
|
25 |
+ |
sh_ok(h, "cd " + r + " && cargo clippy --workspace --all-targets " + feature_flags() + " -- -D warnings");
|
|
26 |
+ |
sh_ok(h, "cd " + r + " && cargo test --workspace " + feature_flags());
|
|
27 |
+ |
|
| 21 |
28 |
|
step("build");
|
| 22 |
29 |
|
sh_ok(h, "cd " + r + " && . ~/.tauri/passwords.env && " +
|
| 23 |
30 |
|
"TAURI_SIGNING_PRIVATE_KEY=$HOME/.tauri/balanced-breakfast.key " +
|
| 15 |
15 |
|
step("checkout");
|
| 16 |
16 |
|
sh_ok(h, "powershell -Command \"cd " + win_repo + "; git pull --ff-only\"");
|
| 17 |
17 |
|
|
|
18 |
+ |
// Gate: no artifact is built from code that fails clippy or its tests. It runs
|
|
19 |
+ |
// on this target's own build host, so a break confined to one platform is
|
|
20 |
+ |
// caught where it would have shipped.
|
|
21 |
+ |
step("prebuild");
|
|
22 |
+ |
sh_ok(h, "powershell -Command \"cd " + win_repo + "; cargo clippy --workspace --all-targets " + feature_flags() + " -- -D warnings\"");
|
|
23 |
+ |
sh_ok(h, "powershell -Command \"cd " + win_repo + "; cargo test --workspace " + feature_flags() + "\"");
|
|
24 |
+ |
|
| 18 |
25 |
|
step("build");
|
| 19 |
26 |
|
sh_ok(h, "powershell -Command \". C:\\Users\\me\\.tauri\\passwords.ps1; " +
|
| 20 |
27 |
|
"$env:RUSTC_WRAPPER=''; " +
|