feat(detention): add policy preview endpoint and calculation receipt #210
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test Client | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - main | |
| - develop | |
| - "claude/**" | |
| paths: | |
| - "client/**" | |
| - "services/tms/internal/api/graphql/schema/**" | |
| - "services/tms/internal/api/graphql/persisted-documents.json" | |
| - ".github/workflows/test-client.yml" | |
| - ".github/actions/setup-client/**" | |
| pull_request: | |
| branches: | |
| - master | |
| - main | |
| - develop | |
| paths: | |
| - "client/**" | |
| - "services/tms/internal/api/graphql/schema/**" | |
| - "services/tms/internal/api/graphql/persisted-documents.json" | |
| - ".github/workflows/test-client.yml" | |
| - ".github/actions/setup-client/**" | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| # Codegen is a prerequisite for typecheck and build, and it is the cheapest | |
| # gate, so it runs once on its own instead of in every downstream job. | |
| codegen: | |
| name: GraphQL Codegen | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| - name: Set up client toolchain | |
| uses: ./.github/actions/setup-client | |
| - name: Check GraphQL generated artifacts | |
| working-directory: ./client | |
| run: pnpm --filter @trenova/graphql codegen:check | |
| verify: | |
| name: ${{ matrix.task.name }} | |
| runs-on: ubuntu-latest | |
| needs: codegen | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| task: | |
| - name: Lint | |
| run: pnpm lint -- --format=github | |
| - name: Typecheck | |
| run: pnpm typecheck | |
| - name: Test | |
| run: pnpm test | |
| - name: Build | |
| run: pnpm build | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| - name: Set up client toolchain | |
| uses: ./.github/actions/setup-client | |
| - name: ${{ matrix.task.name }} | |
| working-directory: ./client | |
| run: ${{ matrix.task.run }} | |
| storybook: | |
| name: Storybook | |
| runs-on: ubuntu-latest | |
| needs: codegen | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| - name: Set up client toolchain | |
| uses: ./.github/actions/setup-client | |
| # Browsers are pinned by the lockfile, so keying on it avoids a ~100MB | |
| # download on every run. | |
| - name: Cache Playwright browsers | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: playwright-${{ runner.os }}-${{ hashFiles('client/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| playwright-${{ runner.os }}- | |
| - name: Install Playwright Chromium | |
| working-directory: ./client/apps/web | |
| run: pnpm exec playwright install --with-deps chromium | |
| - name: Run Storybook tests | |
| working-directory: ./client/apps/web | |
| run: pnpm test:storybook |