name: CI
# PRを作ったとき / 更新したとき、および main に入ったときに走ります。
# 現時点では「結果を表示するだけ」で、赤くてもマージはできます。
# 運用が安定したら Ruleset の "Require status checks to pass" をONにして必須化します。
on:
pull_request:
push:
branches: [main]
jobs:
check:
name: Lint / Test / Build
runs-on: ubuntu-latest
steps:
- name: リポジトリを取得
uses: actions/checkout@v4
- name: Node.js をセットアップ
uses: actions/setup-node@v4
with:
node-version: 24
cache: npm
- name: 依存パッケージをインストール
run: npm ci
# ★Prisma クライアントを生成する★
#
# 生成先の `lib/generated/prisma` は .gitignore 対象(`.gitignore:47`)なので、
# ★チェックアウト直後には存在しない★。生成しないと `@/lib/generated/prisma/client`
# が解決できず、★ビルドが module-not-found で落ちる★(2026-09-17 に PR #6 で発生)。
#
# ★DBには接続しない★ — `prisma generate` はスキーマだけを読む。
# 接続先(`prisma7.config.ts` の `datasource.url`)が未設定でも生成できる。
- name: Prisma クライアントを生成
run: npx prisma generate
- name: Lint
run: npm run lint --if-present
# 判定ロジックの期待値表テスト。
# `--if-present` は M1 以前の名残で、現在は test スクリプトが存在する。
- name: テスト
run: npm test --if-present
- name: ビルド
run: npm run build
env:
# DBには接続しない。サンプルデータでビルドが通ることを確認する
USE_FIXTURES: "true"