mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-10-30 08:40:52 +08:00
59 lines
1.8 KiB
YAML
59 lines
1.8 KiB
YAML
name: check-e2e
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
check-e2e:
|
|
strategy:
|
|
matrix:
|
|
browser: [chromium, firefox]
|
|
timeout-minutes: 30
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: '18.12.1'
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
- name: Get npm cache directory
|
|
id: npm-cache-dir
|
|
run: |
|
|
echo "::set-output name=dir::$(npm config get cache)"
|
|
- name: Get Playwright version
|
|
id: playwright-version
|
|
run: |
|
|
echo "::set-output name=version::$(node -p "require('@playwright/test/package.json').version")"
|
|
- uses: actions/cache@v3
|
|
name: Check if Playwright browser is cached
|
|
id: playwright-cache
|
|
with:
|
|
path: ${{ steps.npm-cache-dir.outputs.dir }}
|
|
key: ${{ runner.os }}-Playwright-${{steps.playwright-version.outputs.version}}
|
|
- name: Install Playwright browser if not cached
|
|
if: steps.playwright-cache.outputs.cache-hit != 'true'
|
|
run: npx playwright install --with-deps
|
|
env:
|
|
PLAYWRIGHT_BROWSERS_PATH: ${{steps.npm-cache-dir.outputs.dir}}
|
|
- name: Install OS dependencies of Playwright if cache hit
|
|
if: steps.playwright-cache.outputs.cache-hit == 'true'
|
|
run: npx playwright install-deps
|
|
- name: Start http-api test server
|
|
run: ./scripts/run-http-api-with-fixtures --non-interactive --detach
|
|
- name: Run Playwright tests
|
|
run: npm run test:e2e -- --project ${{ matrix.browser }}
|
|
env:
|
|
PLAYWRIGHT_BROWSERS_PATH: ${{steps.npm-cache-dir.outputs.dir}}
|
|
- uses: actions/upload-artifact@v3
|
|
if: always()
|
|
with:
|
|
name: test-artifacts-${{ runner.os }}
|
|
retention-days: 30
|
|
path: |
|
|
tests/artifacts/**/*
|