Repository navigation
chore(data): merge data into main #3589
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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 |