Skip to content

chore(data): merge data into main #3589

chore(data): merge data into main

chore(data): merge data into main #3589

Workflow file for this run

# Continuous Integration jobs for changes headed to main.
---
name: Main
on:
pull_request:
branches: [main]
types: [opened, ready_for_review, reopened, synchronize]
push:
branches: [main]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
permissions:
contents: read
defaults:
run:
shell: bash -Eeuo pipefail {0}
jobs:
lint:
name: Lint
permissions:
contents: read
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: ⤵ Checkout Branch
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.head_ref }}
- name: 📦 Setup
uses: ./.github/actions/setup
- env:
TIMING: 1
name: 💅🏽 Lint
run: pnpm lint
check-types:
name: Check Types
permissions:
contents: read
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: ⤵ Checkout Branch
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.head_ref }}
- name: 📦 Setup
uses: ./.github/actions/setup
- name: ✅ Validate Types
run: pnpm check-types
test:
name: Test
permissions:
contents: read
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: ⤵ Checkout Branch
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.head_ref }}
- name: 📦 Setup
uses: ./.github/actions/setup
- name: 🧪 Run Tests
run: pnpm test
check-wiki-write-core-dist:
name: Check Wiki Write Core Dist
permissions:
contents: read
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: ⤵ Checkout Branch
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.head_ref }}
- name: 📦 Setup
uses: ./.github/actions/setup
- name: ✅ Verify committed package build
run: pnpm check:wiki-write-core-dist
test-scripts-load:
name: Test Scripts Load
permissions:
contents: read
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: ⤵ Checkout Branch
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.head_ref }}
- name: 📦 Setup
uses: ./.github/actions/setup
- name: 🧪 Load production scripts under Node strip-only
# Node 24's strip-only TypeScript execution only erases type annotations -- it does
# not transform TS-specific class constructs (parameter properties, enum, namespace).
# Neither `tsc --noEmit` nor Vitest exercise the strip-only parser, so those runtime
# errors used to surface only on scheduled workflow runs. Importing each production
# script here catches them at merge time instead.
run: |
for f in scripts/*.ts; do
case "$f" in *.test.ts) continue ;; esac
node -e "import('./$f').then(() => {}).catch(err => { process.stderr.write('FAIL $f: ' + (err.code || err.message) + '\\n'); process.exit(1); })"
echo " ok $f"
done
check-workflows:
name: Check Workflows
permissions:
contents: read
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: ⤵ Checkout Branch
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.head_ref }}
- name: 📦 Setup
uses: ./.github/actions/setup
- name: ✅ Validate Workflows
uses: rhysd/actionlint@914e7df21a07ef503a81201c76d2b11c789d3fca # v1.7.12
check-wiki-authority:
name: Check Wiki Authority
# Only pull_request events carry a PR author to evaluate against the guard.
# Post-merge push runs on `main` are already past the gate.
if: github.event_name == 'pull_request'
permissions:
contents: read
pull-requests: read
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: ⤵ Checkout Branch
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.head_ref }}
- name: 📦 Setup
uses: ./.github/actions/setup
- name: 🛡 Enforce Wiki Authority
env:
GH_TOKEN: ${{ github.token }}
run: node scripts/check-wiki-authority.ts
check-mutation-guards:
name: Check Mutation Guards
# Only pull_request events carry a PR whose changed files can be compared against the
# trigger set. The wrapper's own changed-file trigger gate short-circuits to
# `not-applicable` when nothing in the trigger set changed; a post-merge push run on
# `main` has no PR to diff against, so this job does not run there at all.
if: github.event_name == 'pull_request'
permissions:
contents: read
pull-requests: read
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: ⤵ Checkout Branch
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.head_ref }}
- name: 📦 Setup
uses: ./.github/actions/setup
- name: 🧬 Check Mutation Guards
env:
GH_TOKEN: ${{ github.token }}
run: pnpm check:mutation-guards
- name: ⬆ Upload mutation report
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: mutation-report
path: reports/mutation/
if-no-files-found: warn
retention-days: 7