Files
Nitro-V3/.github/workflows/ci.yml
T
simoleo89 5d7a20ac39 ci: use absolute symlink target + check out feat/react19-event-bus on the renderer fork
Two follow-up fixes after the first CI run failed with TS2307 across
~250 files:

1. The relative symlink target `../../../Nitro_Render_V3` resolves
   from inside `Nitro-V3/node_modules/@nitrots/nitro-renderer` to
   `Nitro-V3/Nitro_Render_V3` (one too few `..`) — that path
   doesn't exist, so tsgo couldn't find the renderer SDK and bailed
   on every `@nitrots/nitro-renderer` import. Switch to an absolute
   target via ${{ github.workspace }}.

2. The client depends on renderer API additions (`allowUnderpass` on
   RoomSettingsData, `sendBackgroundMessage` on IRoomSession, the
   NitroConfig Window declaration alignment) that live on
   `feat/react19-event-bus` of `simoleo89/Nitro_Render_V3` and not
   on `duckietm/Nitro_Render_V3:main`. Point the checkout at the
   fork + that branch so tsgo sees what the local working tree sees.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 22:02:15 +02:00

80 lines
2.8 KiB
YAML

name: CI
on:
push:
branches:
- main
- 'feat/**'
pull_request:
jobs:
check:
name: Type check + tests
runs-on: ubuntu-latest
steps:
# The build/dev/typecheck setup expects the Nitro renderer SDK to
# live as a sibling of this repo (see CLAUDE.md → Setup walkthrough).
# Mirror that here by checking the client into <workspace>/Nitro-V3
# and the renderer into <workspace>/Nitro_Render_V3.
- name: Checkout Nitro-V3
uses: actions/checkout@v4
with:
path: Nitro-V3
# The client tracks renderer changes that are pushed to the
# `feat/react19-event-bus` branch of `simoleo89/Nitro_Render_V3`
# (allowUnderpass + sendBackgroundMessage + Window NitroConfig
# alignment, etc.). `duckietm/Nitro_Render_V3:main` doesn't yet
# have those, so tsgo would fail right away if we checked that
# out instead.
- name: Checkout Nitro_Render_V3 (sibling)
uses: actions/checkout@v4
with:
repository: simoleo89/Nitro_Render_V3
ref: feat/react19-event-bus
path: Nitro_Render_V3
- name: Setup Node 22
uses: actions/setup-node@v4
with:
node-version: '22'
cache: yarn
cache-dependency-path: |
Nitro-V3/yarn.lock
Nitro_Render_V3/yarn.lock
- name: Install renderer SDK deps
working-directory: Nitro_Render_V3
run: yarn install --frozen-lockfile
- name: Install client deps
working-directory: Nitro-V3
run: yarn install --frozen-lockfile
# The renderer SDK is consumed via a filesystem symlink in
# node_modules/@nitrots/nitro-renderer; create it AFTER yarn
# install (otherwise yarn would clean it up since the package
# isn't declared in package.json). tsgo (TS 7 native preview)
# then resolves the tsconfig `include` entry pointing at the
# renderer's `src/**/*.ts`.
#
# Use an absolute path so the link target is unambiguous
# regardless of the cwd that reads it. A relative target like
# `../../../Nitro_Render_V3` resolves to
# `Nitro-V3/Nitro_Render_V3` (one too few `..`), which doesn't
# exist and makes tsgo report TS2307 across the entire src/.
- name: Symlink renderer into client node_modules
run: |
mkdir -p Nitro-V3/node_modules/@nitrots
ln -sfn "${{ github.workspace }}/Nitro_Render_V3" Nitro-V3/node_modules/@nitrots/nitro-renderer
ls -la Nitro-V3/node_modules/@nitrots/
ls Nitro-V3/node_modules/@nitrots/nitro-renderer/packages/api/src/ | head -5
- name: Type check (tsgo)
working-directory: Nitro-V3
run: yarn typecheck
- name: Vitest
working-directory: Nitro-V3
run: yarn test --run