Skip to content

Cut remote-DB list latency by batching N+1 lookups (banlist ~5×, comms ~6×) #111

Cut remote-DB list latency by batching N+1 lookups (banlist ~5×, comms ~6×)

Cut remote-DB list latency by batching N+1 lookups (banlist ~5×, comms ~6×) #111

Workflow file for this run

# docs-build — validate the Astro + Starlight build on PRs that touch docs/.
#
# Cadence: per-PR + per-merge-to-main, gated on `docs/**` paths so it
# stays out of the way of PRs that don't touch the docs site.
#
# Why it exists: catches `npm run build` failures (broken Markdown,
# missing assets, busted Starlight config) BEFORE the deploy trigger
# fires on main. Pair gate with docs-deploy-trigger.yml.
name: docs-build
on:
push:
branches:
- main
paths:
- 'docs/**'
- '.github/workflows/docs-build.yml'
pull_request:
paths:
- 'docs/**'
- '.github/workflows/docs-build.yml'
jobs:
build:
name: Build Astro + Starlight
runs-on: ubuntu-24.04
defaults:
run:
working-directory: docs
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
# Astro 6 requires Node >=22.12; 20 trips an EBADENGINE on `npm
# ci` and a hard "Node.js v20 is not supported by Astro!" on
# `astro build`. Bumped together with the docs astro+starlight
# group bump (#1346).
node-version: '22'
cache: 'npm'
cache-dependency-path: docs/package-lock.json
# docs/package-lock.json is committed; npm ci is the deterministic
# path and will fail loudly if anyone lands a package.json bump
# without regenerating the lockfile (which is exactly the gate
# we want).
- name: Install dependencies
run: npm ci --no-audit --no-fund
- name: Build site
run: npm run build
# Surface the built site as an artifact so reviewers can poke at
# the chrome locally without rebuilding. Retention is short
# because docs-deploy-trigger.yml is the production path.
- name: Upload build artifact
if: success()
uses: actions/upload-artifact@v4
with:
name: docs-dist
path: docs/dist/
retention-days: 7
if-no-files-found: error