build(preflight): add csharpier and markdownlint blocks (G1)
Block E runs 'dotnet csharpier check' against the HellionChat/ tree, catching reflow drift before push. Block F runs markdownlint-cli2 over the repo's *.md files; MD036 is disabled because forge-post bodies use bold emphasis as section headings (the auto-announce workflow renders those as Discord embeds, so the bold pattern is required). The .claude directory is excluded from the lint scope to match its gitignore status. .markdownlint.json also gains MD024 with siblings_only:true so per-release '### Internal' sub-headers in CHANGELOG.md don't trip the rule across sibling H2 sections.
This commit is contained in:
+12
-2
@@ -1,7 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
# preflight.sh — pre-push gate. Blocks A/B/C verify config drift; Block D is a
|
||||
# headless `dotnet build` to catch compile-time API drift. Test execution lives
|
||||
# in the local Build-Suite repo and is NOT part of this preflight.
|
||||
# headless `dotnet build` to catch compile-time API drift; Block E runs
|
||||
# `dotnet csharpier check` against HellionChat/; Block F runs markdownlint
|
||||
# against the repo's *.md files. Test execution lives in the local Build-Suite
|
||||
# repo and is NOT part of this preflight.
|
||||
|
||||
set -euo pipefail
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
@@ -19,4 +21,12 @@ echo "==> preflight: Block C — changelog sync"
|
||||
echo "==> preflight: Block D — plugin compile health"
|
||||
dotnet build HellionChat/HellionChat.csproj --configuration Release --nologo --verbosity quiet
|
||||
|
||||
echo "==> preflight: Block E — csharpier reflow check"
|
||||
dotnet csharpier check HellionChat/
|
||||
|
||||
echo "==> preflight: Block F — markdownlint"
|
||||
# npx --yes avoids a global install; first run caches into ~/.npm/_npx/.
|
||||
# Subsequent runs are sub-second.
|
||||
npx --yes markdownlint-cli2 "**/*.md" "#node_modules" "#bin" "#obj" "#.claude"
|
||||
|
||||
echo "==> preflight: ALL GREEN"
|
||||
|
||||
Reference in New Issue
Block a user