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: vitest: name: Unit tests (frontend) 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: 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 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: - 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: Copy Configure run: cp .github/misskey/test.yml .config - name: Build run: pnpm build - 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