1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-07-25 15:35:14 +02:00
Files
misskey/.github/workflows/test-frontend.yml
kakkokari-gtyih e60e965c3c perf
2026-07-08 16:36:58 +09:00

128 lines
3.4 KiB
YAML

name: Test (frontend)
on:
push:
branches:
- master
- develop
paths:
- packages/frontend/**
# for permissions
- packages/misskey-js/**
# for e2e
- packages/backend/**
- .github/workflows/test-frontend.yml
- .github/misskey/test.yml
pull_request:
paths:
- packages/frontend/**
# for permissions
- packages/misskey-js/**
# for e2e
- packages/backend/**
- .github/workflows/test-frontend.yml
- .github/misskey/test.yml
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.3
with:
submodules: true
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.9
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Copy Configure
run: cp .github/misskey/test.yml .config
- name: Build
run: pnpm build
- name: Archive built repository
run: tar -C "$GITHUB_WORKSPACE" -czf "$RUNNER_TEMP/frontend-test-repo.tar.gz" .
- name: Upload built repository
uses: actions/upload-artifact@v7
with:
name: frontend-test-repo
path: ${{ runner.temp }}/frontend-test-repo.tar.gz
vitest:
name: Unit tests (frontend)
runs-on: ubuntu-latest
needs: build
steps:
- name: Download built repository
uses: actions/download-artifact@v8
with:
name: frontend-test-repo
path: ${{ runner.temp }}
- name: Extract built repository
run: tar -C "$GITHUB_WORKSPACE" -xzf "$RUNNER_TEMP/frontend-test-repo.tar.gz"
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.9
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Test
run: pnpm --filter frontend test-and-coverage
- name: Upload Coverage
uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/frontend/coverage/coverage-final.json
e2e:
name: E2E tests (frontend)
runs-on: ubuntu-latest
needs: build
services:
postgres:
image: postgres:18
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:8
ports:
- 56312:6379
steps:
- name: Download built repository
uses: actions/download-artifact@v8
with:
name: frontend-test-repo
path: ${{ runner.temp }}
- name: Extract built repository
run: tar -C "$GITHUB_WORKSPACE" -xzf "$RUNNER_TEMP/frontend-test-repo.tar.gz"
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.9
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Playwright install
working-directory: packages/frontend
run: pnpm exec playwright install --with-deps chromium
- name: Test
run: pnpm start-server-and-test start:test http://localhost:61812 "pnpm --filter frontend test:e2e"
timeout-minutes: 15
- uses: actions/upload-artifact@v7
if: failure()
with:
name: playwright-e2e-artifacts
path: packages/frontend/test/e2e/artifacts