E2E Test All origin--https://opentiny.github.io/tiny-vue-web-doc #72
This file contains hidden or 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
name: E2E Test ALL | |
run-name: E2E Test All origin--${{ inputs.origin }} | |
on: | |
workflow_dispatch: | |
inputs: | |
origin: | |
description: | | |
输入需要测试的域名地址,包括微服务路径,如果不输入则采用本地启动服务测试, | |
例如: `https://opentiny.github.io/tiny-vue-web-doc`. | |
required: false | |
type: string | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.sha }} | |
cancel-in-progress: true | |
jobs: | |
dispatch-test-all: | |
name: Dispatch All Test | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
shard: [1/8, 2/8, 3/8, 4/8, 5/8, 6/8, 7/8, 8/8] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v2 | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: Get pnpm store directory | |
id: pnpm-cache | |
run: | | |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v3 | |
name: Setup pnpm cache | |
with: | |
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Install dependencies | |
run: pnpm i --no-frozen-lockfile | |
- name: dev start | |
if: contains(inputs.origin, 'http') == false | |
run: pnpm site & sleep 5 | |
- name: Release E2E Config | |
if: contains(inputs.origin, 'http') == true | |
run: pnpm release:e2eConfig -o ${{ inputs.origin }} & sleep 5 | |
- name: update playwright | |
run: pnpm recursive update @playwright/test | |
- name: Install Playwright browsers | |
run: pnpm install:browser --with-deps chromium | |
- name: Run Playwright tests | |
run: pnpm test:e2e3 --shard=${{ matrix.shard }} --reporter=blob | |
- name: Upload blob report to GitHub Actions Artifacts | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: all-blob-reports-${{ strategy.job-index }} | |
path: examples/vue3/blob-report | |
retention-days: 0.5 | |
dispatch-test-all-merge-reports: | |
name: 'Merge Reports After Dispatch All Test' | |
# Merge reports after playwright-tests, even if some shards have failed | |
if: always() | |
needs: [dispatch-test-all] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: Install dependencies | |
run: | | |
npm install -g @playwright/test | |
- name: Download blob reports from GitHub Actions Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: all-blob-reports-* | |
merge-multiple: true | |
path: all-blob-reports | |
- name: Merge into HTML Report | |
run: playwright merge-reports --reporter html ./all-blob-reports | |
- name: Upload HTML report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: html-report--attempt-${{ github.run_attempt }} | |
path: playwright-report | |
retention-days: 7 |