Skip to content

Design about page

Design about page #32

Workflow file for this run

# CI for the Lineage 2 API.
#
# The generated dataset (`data/generated/interlude/*.json`) is
# committed to the repo as the source-of-truth artefact the API
# serves. CI therefore runs the full check matrix on every PR:
# lint, typecheck (runtime + build-time parsers), unit tests +
# snapshots, OpenAPI drift gate, and the Next.js build.
#
# `pnpm build:data` does NOT run in CI: it requires a local aCis
# datapack and (optionally) L2 client DAT files, neither of which
# is vendored or available as a CI secret. PR authors regenerate
# the JSON locally, commit the diff, and reviewers see the dataset
# changes alongside the parser changes.
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
validate:
name: Typecheck + tests + build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Typecheck (runtime + tests)
run: pnpm typecheck
- name: Typecheck (build-time parsers)
run: pnpm typecheck:scripts
- name: Lint
run: pnpm lint
- name: Unit tests + snapshots
run: pnpm test
- name: OpenAPI drift gate
# Regenerates the stub from the Zod schemas and fails if it
# differs from the committed artefact at
# `docs/openapi.stub.json`. Forces every DTO change to land
# together with its spec update.
run: |
pnpm openapi
git diff --exit-code docs/openapi.stub.json
- name: Next.js build
run: pnpm build