dify/.github/workflows/playwright.yml

59 lines
1.5 KiB
YAML

name: Playwright Tests
on:
workflow_call:
concurrency:
group: playwright-tests-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
test:
name: Playwright Tests
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./web
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Check changed files
id: changed-files
uses: tj-actions/changed-files@v46
with:
files: web/**
- name: Install pnpm
if: steps.changed-files.outputs.any_changed == 'true'
uses: pnpm/action-setup@v4
with:
package_json_file: web/package.json
run_install: false
- name: Setup Node.js
uses: actions/setup-node@v4
if: steps.changed-files.outputs.any_changed == 'true'
with:
node-version: 22
cache: pnpm
cache-dependency-path: ./web/package.json
- name: Install dependencies
if: steps.changed-files.outputs.any_changed == 'true'
working-directory: ./web
run: pnpm install --frozen-lockfile
- name: Install Playwright Browsers
if: steps.changed-files.outputs.any_changed == 'true'
run: pnpm exec playwright install --with-deps
- name: Run Playwright tests
if: steps.changed-files.outputs.any_changed == 'true'
working-directory: ./web
run: pnpm e2e-test