ReviewOS

also looking at this

stacks/reportshq

Expand BunPress guide and pre-E2E quality gates

#35
Merged glennmichael123 wants to merge docs/bunpress-product-guide into main
40 files +1524 -373
.github/workflows/ci.ymlmodified+57-1
Changes to .github/workflows/ci.yml
@@ -175,6 +175,53 @@ jobs:
175175 - name: Design tokens
176176 run: bun scripts/verify-tokens.ts
177177
178 build:
179 runs-on: ubuntu-latest
180
181 steps:
182 - name: Checkout Code
183 uses: actions/checkout@v4
184
185 - name: Setup Pantry
186 uses: pantry-pm/pantry/packages/action@c1417d98f5613290bc3b1f96d35086b834684659 # v0.10.47 + the socket-hang-up retry fix
187 with:
188 install: 'false'
189
190 - name: Use cached node_modules
191 uses: actions/cache@v4
192 with:
193 path: node_modules
194 key: node-modules-${{ hashFiles('**/bun.lock') }}
195 restore-keys: |
196 node-modules-
197
198 - name: Install Dependencies
199 run: bun install
200
201 - name: Build artifacts
202 run: bun run build:artifacts
203
204 - name: Build application
205 run: bun run build
206
207 - name: Build documentation
208 run: bun buddy build docs
209
210 - name: Validate documentation
211 run: bun run docs:validate
212
213 - name: Validate UI accessibility
214 run: bun run ui:validate
215
216 - name: Validate responsive visual contracts
217 run: bun run visual:validate
218
219 - name: Validate production release artifact
220 run: bun run release:validate
221
222 - name: Verify generated files are current
223 run: git diff --exit-code
224
178225 # Push to deploy.
179226 #
180227 # This job lives in CI rather than in a workflow of its own so the gates are
@@ -185,7 +232,7 @@ jobs:
185232 #
186233 # A red build therefore means NO deploy, silently and by construction.
187234 deploy:
188 needs: [lint, typecheck, test, test-postgres]
235 needs: [lint, typecheck, test, test-postgres, build]
189236 if: github.event_name == 'push' && github.ref == 'refs/heads/main'
190237 runs-on: ubuntu-latest
191238
@@ -221,6 +268,12 @@ jobs:
221268 - name: Build artifacts
222269 run: bun run build:artifacts
223270
271 - name: Build application
272 run: bun run build
273
274 - name: Validate production artifact
275 run: bun run release:validate
276
224277 # ts-cloud reads the PUBLIC key off disk to register it, so it is derived
225278 # from the private one rather than stored as a second secret. Two secrets
226279 # that have to agree eventually stop agreeing.
@@ -298,6 +351,9 @@ jobs:
298351
299352 exit $fail
300353
354 - name: Verify public metadata
355 run: bun run deployment:smoke
356
301357 # The same suite against Postgres, and a hard gate on the deploy.
302358 #
303359 # Production is Postgres and the suite defaults to SQLite, so every difference