Skip to content

docs: point wiki links at the published documentation (#227) #648

docs: point wiki links at the published documentation (#227)

docs: point wiki links at the published documentation (#227) #648

Workflow file for this run

name: Test
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
permissions:
contents: read
timeout-minutes: 5
# 22 is the oldest Node still in support; 24 is the LTS the consuming
# apps now run on. Testing only the newest would leave consumers on 22
# unverified. engines.node (>=22) matches this matrix floor.
strategy:
fail-fast: false
matrix:
node-version: ['22', '24']
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v7
with:
node-version: ${{ matrix.node-version }}
# Node 22 bundles npm 10.9, whose resolver can crash on a fresh dependency
# graph ("Cannot read properties of null (reading 'edgesOut')" in
# #loadPeerSet, 2026-09-03, first seen in robosystems-core). This lane
# verifies our code on the engines floor, not npm 10; with no lockfile,
# every run resolves from the live registry, so a current npm keeps the
# lane about Node rather than npm.
- name: Use a current npm on the Node 22 lane
if: matrix.node-version == '22'
run: npm install -g npm@11
- name: Install Dependencies
run: npm install
- name: Format Check
run: npm run format:check
- name: Lint
run: npm run lint
- name: Type Check
run: npm run typecheck
- name: Prepare for Publishing
run: npm run prepare:publish
- name: Run Tests
run: npm run test
- name: Build
run: npm run build
- name: Validate Package Structure
run: |
# Check that key files exist after prepare
test -f index.js || { echo "Missing index.js"; exit 1; }
test -f index.d.ts || { echo "Missing index.d.ts"; exit 1; }
test -f sdk.gen.js || { echo "Missing sdk.gen.js"; exit 1; }
test -f package.json || { echo "Missing package.json"; exit 1; }
echo "✅ Package structure validated"