Skip to content

chore(deps): bump react-router and react-router-dom in /frontend #549

chore(deps): bump react-router and react-router-dom in /frontend

chore(deps): bump react-router and react-router-dom in /frontend #549

Workflow file for this run

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