Client E2E Tests #498
This file contains 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
--- | |
# This workflow runs client E2E tests using Playwright | |
# | |
# See: https://playwright.dev/ | |
name: Client E2E Tests | |
# yamllint disable-line rule:truthy | |
on: | |
# schedule tests to run every day at 3pm UTC (10am eastern) monday-friday | |
schedule: | |
- cron: '0 15 * * 1-5' | |
jobs: | |
e2e-tests: | |
name: Playwright E2E Tests | |
timeout-minutes: 30 | |
runs-on: ubuntu-24.04 | |
# Shard the tests across multiple machines to improve performance | |
# Can be increased as needed starting with a small pool | |
strategy: | |
fail-fast: false | |
matrix: | |
shardIndex: [1] | |
shardTotal: [1] | |
steps: | |
- uses: actions/checkout@v3 | |
# Debugging purposes to verify branch being worked on | |
- run: git branch | |
- name: Use Node 20.10.0 LTS | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20.10.0 | |
cache: 'yarn' | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: Cache Browsers | |
id: cache-browsers | |
uses: actions/cache@v3 | |
env: | |
cache-name: cache-playwright-browsers | |
with: | |
# Playwright browsers are stored in | |
# %USERPROFILE%\AppData\Local\ms-playwright on Windows | |
# ~/Library/Caches/ms-playwright on MacOS | |
# ~/.cache/ms-playwright on Linux | |
path: ~/.cache/ms-playwright | |
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} | |
# Install Playwright browsers and dependencies if cache miss | |
- if: ${{ steps.cache-browsers.outputs.cache-hit != 'true' }} | |
name: Install Playwright Browsers | |
run: npx playwright install --with-deps | |
# Install Playwright dependencies only if cache hit | |
- if: ${{ steps.cache-browsers.outputs.cache-hit == 'true' }} | |
name: Install Playwright Dependencies | |
run: npx playwright install-deps | |
- name: Run Playwright tests | |
run: yarn workspace hmi-client test:e2e --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }} | |
- name: Upload test artifacts on failure | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: playwright-e2e-report | |
path: packages/client/**/tests/e2e/test-report/ | |
retention-days: 10 |