|
name: test |
|
concurrency: |
|
group: test-${{ github.github.base_ref }} |
|
cancel-in-progress: true |
|
on: |
|
push: |
|
branches: |
|
- main |
|
pull_request: |
|
|
|
jobs: |
|
test: |
|
runs-on: ${{ matrix.os }} |
|
strategy: |
|
matrix: |
|
os: [ubuntu-latest, macos-latest, windows-latest] |
|
|
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v4 |
|
- uses: pnpm/action-setup@v3 |
|
with: |
|
version: 9 |
|
- name: Install Node.js |
|
uses: actions/setup-node@v4 |
|
with: |
|
node-version: 24 |
|
cache: "pnpm" |
|
|
|
- name: Install dependencies |
|
run: pnpm install --frozen-lockfile |
|
|
|
- name: Build |
|
run: pnpm -w build |
|
|
|
- name: Run codegen for react-app |
|
run: pnpm --filter @7nohe/react-app generate:api |
|
|
|
- name: Run codegen for nextjs-app |
|
run: pnpm --filter nextjs-app generate:api |
|
|
|
- name: Run codegen for tanstack-router-app |
|
run: pnpm --filter tanstack-router-app generate:api |
|
|
|
- name: Archive generated query files |
|
uses: actions/upload-artifact@v4 |
|
with: |
|
name: generated-query-file-${{ matrix.os }} |
|
path: examples/react-app/openapi/queries |
|
|
|
- name: Run tsc in react-app |
|
run: pnpm --filter @7nohe/react-app test:generated |
|
|
|
- name: Run tsc in nextjs-app |
|
run: pnpm --filter nextjs-app test:generated |
|
|
|
- name: Run next build in nextjs-app |
|
run: pnpm --filter nextjs-app build |
|
|
|
- name: Run tsc in tanstack-router-app |
|
run: pnpm --filter tanstack-router-app test:generated |
|
|
|
- name: Run biome |
|
run: pnpm biome check . |
|
if: ${{ matrix.os == 'ubuntu-latest' }} |
|
|
|
- name: Run test |
|
run: pnpm test |
|
|
|
- name: Report coverage |
|
if: always() && matrix.os == 'ubuntu-latest' |
|
uses: davelosert/vitest-coverage-report-action@v2 |