mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-19 15:06:20 +00:00
cb7502f3b0
Node 20 is being removed from GitHub-hosted runners in Sept 2026 and the actions/checkout@v4 / setup-node@v4 steps were warning on every run. Set FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true at the workflow level so they pick up the Node 24 runtime now. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
88 lines
3.1 KiB
YAML
88 lines
3.1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- 'feat/**'
|
|
pull_request:
|
|
|
|
# Opt into the Node.js 24 runtime for the JavaScript actions
|
|
# (actions/checkout, actions/setup-node, …). Node 20 will be removed
|
|
# from GitHub-hosted runners in September 2026; this env var asks the
|
|
# runner to use Node 24 today so the workflow logs stop warning about
|
|
# it on every run.
|
|
env:
|
|
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'
|
|
|
|
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
|