mirror of
https://github.com/yamadashy/repomix.git
synced 2026-10-17 01:49:13 +02:00
intent(test-ownership): move tests into website/server/tests/ so they collocate with the code under test and stop reaching up through three parents; reviewer follow-up wanted dedicated coverage and the root vs. website/server package boundary makes collocation the right long-term layout decision(vitest-config): give website/server its own vitest.config.ts + `test` script; root's existing tests/**/*.test.ts include no longer catches server tests since they moved outside that tree, so the two test runs stay independent decision(tsconfig-test): add tsconfig.test.json extending the build config and lift lint-tsc to `-p tsconfig.test.json` — the build tsconfig's rootDir: "./src" excludes tests/, so a single lint command wouldn't have type-checked them learned(valibot-instanceof): with tests now resolving valibot from the same website/server/node_modules as validateRequest, the cause-check can go back to `instanceof v.ValiError` — the duck-type workaround was only needed when the root harness and server pulled different valibot copies constraint(ci-website): added a `test-website-server` job that links the local repomix build the same way lint-website-server does; tests don't actually import repomix today, but colocation means they easily could later and the link step keeps parity
124 lines
3.4 KiB
YAML
124 lines
3.4 KiB
YAML
name: CI Website
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'website/**'
|
|
- 'src/**'
|
|
- 'package.json'
|
|
- 'package-lock.json'
|
|
- '.tool-versions'
|
|
- '.github/workflows/ci-website.yml'
|
|
pull_request:
|
|
branches: [main]
|
|
paths:
|
|
- 'website/**'
|
|
- 'src/**'
|
|
- 'package.json'
|
|
- 'package-lock.json'
|
|
- '.tool-versions'
|
|
- '.github/workflows/ci-website.yml'
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
lint-website-client:
|
|
name: Lint Website Client
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version-file: .tool-versions
|
|
cache: npm
|
|
- name: Install website client dependencies
|
|
working-directory: website/client
|
|
run: npm ci
|
|
- name: Lint website client
|
|
working-directory: website/client
|
|
run: npm run lint
|
|
|
|
lint-website-server:
|
|
name: Lint Website Server
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version-file: .tool-versions
|
|
cache: npm
|
|
- name: Build and link local repomix
|
|
run: |
|
|
npm ci
|
|
npm run build
|
|
npm link
|
|
- name: Install website server dependencies
|
|
working-directory: website/server
|
|
run: |
|
|
npm ci
|
|
npm link repomix
|
|
- name: Lint website server
|
|
working-directory: website/server
|
|
run: npm run lint
|
|
|
|
test-website-server:
|
|
name: Test Website Server
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version-file: .tool-versions
|
|
cache: npm
|
|
- name: Build and link local repomix
|
|
run: |
|
|
npm ci
|
|
npm run build
|
|
npm link
|
|
- name: Install website server dependencies
|
|
working-directory: website/server
|
|
run: |
|
|
npm ci
|
|
npm link repomix
|
|
- name: Test website server
|
|
working-directory: website/server
|
|
run: npm run test
|
|
|
|
bundle-website-server:
|
|
name: Bundle Website Server
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version-file: .tool-versions
|
|
cache: npm
|
|
- name: Build and link local repomix
|
|
run: |
|
|
npm ci
|
|
npm run build
|
|
npm link
|
|
- name: Install website server dependencies
|
|
working-directory: website/server
|
|
run: |
|
|
npm ci
|
|
npm link repomix
|
|
- name: Bundle website server
|
|
working-directory: website/server
|
|
run: npm run bundle
|