chore(deps): bump react-router and react-router-dom in /frontend #549
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 | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| workflow_dispatch: | |
| schedule: | |
| - cron: '15 22 * * *' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| checks: write | |
| issues: write | |
| pull-requests: write | |
| jobs: | |
| unit-tests: | |
| name: Unit Tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| go-version: ["1.26.2"] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Set up Go ${{ matrix.go-version }} | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| cache: true | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24' | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install frontend dependencies | |
| working-directory: frontend | |
| run: npm ci | |
| - name: Build frontend assets | |
| working-directory: frontend | |
| run: npm run build:app | |
| - name: Verify dependencies | |
| run: | | |
| go mod tidy | |
| git diff --exit-code | |
| - name: Run Go unit tests | |
| run: | | |
| go install gotest.tools/gotestsum@latest | |
| gotestsum \ | |
| --junitfile results.xml \ | |
| --format testdox \ | |
| ./... | |
| - name: Run frontend unit tests | |
| working-directory: frontend | |
| run: npm run test | |
| - name: Run targeted Go race tests | |
| run: go test -race ./internal/server ./internal/watch ./pkg/api | |
| - name: Publish Test Results | |
| if: ${{ !cancelled() }} | |
| uses: dorny/test-reporter@v3 | |
| with: | |
| name: Go Unit Tests | |
| path: results.xml | |
| reporter: java-junit | |
| postgres-integration-tests: | |
| name: PostgreSQL Integration Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version-file: 'go.mod' | |
| cache: true | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24' | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install frontend dependencies | |
| working-directory: frontend | |
| run: npm ci | |
| - name: Build frontend assets | |
| working-directory: frontend | |
| run: npm run build:app | |
| - name: Run PostgreSQL integration tests | |
| run: scripts/test-postgres-e2e.sh | |
| e2e-tests: | |
| name: Playwright E2E Tests | |
| if: ${{ github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| container: | |
| # Keep this tag in sync with frontend/package-lock.json @playwright/test. | |
| image: mcr.microsoft.com/playwright:v1.59.1-noble | |
| options: --user 1001 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| go-version: ["1.26.2"] | |
| project: [chromium, firefox, webkit, mobile-safari, mobile-chrome, tablet-touch, desktop-touch-chromium] | |
| shard: [1, 2, 3, 4] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Set up Go ${{ matrix.go-version }} | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| cache: true | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24.14.1' | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install frontend dependencies | |
| working-directory: frontend | |
| run: npm ci | |
| - name: Build frontend assets | |
| working-directory: frontend | |
| run: npm run build:app | |
| - name: Build E2E binary | |
| run: go build -o /tmp/tld-e2e ./cmd/tld | |
| - name: Run Playwright E2E tests | |
| working-directory: frontend | |
| env: | |
| TLD_E2E_BINARY: /tmp/tld-e2e | |
| TLD_E2E_PORT: 1806${{ matrix.shard }} | |
| TLD_E2E_DATA_DIR: /tmp/tld-playwright-${{ github.run_id }}-${{ matrix.project }}-${{ matrix.shard }} | |
| run: npx playwright test -c playwright.config.ts --project=${{ matrix.project }} --shard=${{ matrix.shard }}/4 --reporter=github,blob | |
| - name: Upload Playwright blob report | |
| if: ${{ !cancelled() }} | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: playwright-blob-report-${{ matrix.project }}-${{ matrix.shard }} | |
| path: frontend/blob-report/ | |
| retention-days: 30 | |
| e2e-report: | |
| name: Playwright E2E Report | |
| if: ${{ !cancelled() && (needs.e2e-tests.result == 'success' || needs.e2e-tests.result == 'failure') }} | |
| needs: e2e-tests | |
| runs-on: ubuntu-latest | |
| container: | |
| # Keep this tag in sync with frontend/package-lock.json @playwright/test. | |
| image: mcr.microsoft.com/playwright:v1.59.1-noble | |
| options: --user 1001 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24.14.1' | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install frontend dependencies | |
| working-directory: frontend | |
| run: npm ci | |
| - name: Download Playwright blob reports | |
| uses: actions/download-artifact@v6 | |
| with: | |
| pattern: playwright-blob-report-* | |
| path: frontend/all-blob-reports | |
| merge-multiple: true | |
| - name: Merge Playwright reports | |
| working-directory: frontend | |
| env: | |
| PLAYWRIGHT_JSON_OUTPUT_NAME: report.json | |
| run: npx playwright merge-reports --reporter=html,json ./all-blob-reports | |
| - name: Verify merged Playwright report | |
| working-directory: frontend | |
| run: | | |
| test -s report.json | |
| test -f playwright-report/index.html | |
| - name: Upload Playwright report | |
| id: playwright-report | |
| if: ${{ !cancelled() }} | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: playwright-report | |
| path: frontend/playwright-report/ | |
| retention-days: 30 | |
| if-no-files-found: error | |
| - name: Publish Playwright results | |
| if: ${{ github.event_name == 'pull_request' && !cancelled() && hashFiles('frontend/report.json') != '' }} | |
| uses: daun/playwright-report-summary@v4 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| report-file: frontend/report.json | |
| report-url: ${{ steps.playwright-report.outputs.artifact-url }} | |
| comment-title: Playwright E2E results | |
| sections: failed, -flaky, -skipped, -passed | |
| job-summary: true |