| name: Web Tests | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| paths: | |
| - web/** | |
| concurrency: | |
| group: web-tests-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: Web Tests | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: ./web | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Check changed files | |
| id: changed-files | |
| uses: tj-actions/changed-files@v45 | |
| with: | |
| files: web/** | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| if: steps.changed-files.outputs.any_changed == 'true' | |
| with: | |
| node-version: 20 | |
| cache: yarn | |
| cache-dependency-path: ./web/package.json | |
| - name: Install dependencies | |
| if: steps.changed-files.outputs.any_changed == 'true' | |
| run: yarn install --frozen-lockfile | |
| - name: Run tests | |
| if: steps.changed-files.outputs.any_changed == 'true' | |
| run: yarn test | |