Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 31 additions & 42 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,11 @@ env:
NODE_OPTIONS: --max-old-space-size=6144

jobs:
# ======== ut ========
ut:
runs-on: ${{ matrix.os }}
timeout-minutes: 15
strategy:
matrix:
# run ut on macOS, as SWC cases will fail on Ubuntu CI
os: [macos-14, windows-latest]

# ======== check change ========
changes:
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.changes.outputs.changed }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
Expand All @@ -48,25 +44,46 @@ jobs:
- "!**/_meta.json"
- "!**/dictionary.txt"

# ======== ut ========
ut:
runs-on: ${{ matrix.os }}
timeout-minutes: 15
needs: changes
if: needs.changes.outputs.changed == 'true'
strategy:
matrix:
# run ut on macOS, as SWC cases will fail on Ubuntu CI
os: [macos-14, windows-latest]

steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1

- name: Install Pnpm
run: |
npm install -g corepack@latest --force
corepack enable

- name: Setup Node.js
if: steps.changes.outputs.changed == 'true'
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
with:
node-version: 22
cache: 'pnpm'

- name: Install Dependencies
if: steps.changes.outputs.changed == 'true'
run: pnpm install

- name: Unit Test
if: steps.changes.outputs.changed == 'true'
run: pnpm run ut

# ======== e2e ========
e2e:
runs-on: ${{ matrix.os }}
timeout-minutes: 15
needs: changes
if: needs.changes.outputs.changed == 'true'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
Expand All @@ -82,39 +99,26 @@ jobs:
npm install -g corepack@latest --force
corepack enable

- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
predicate-quantifier: 'every'
filters: |
changed:
- "!**/*.md"
- "!**/*.mdx"
- "!**/_meta.json"
- "!**/dictionary.txt"

- name: Setup Node.js
if: steps.changes.outputs.changed == 'true'
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
with:
node-version: 22
cache: 'pnpm'

- name: Install Dependencies
if: steps.changes.outputs.changed == 'true'
run: pnpm install && cd ./e2e && npx playwright install chromium

- name: E2E Test - 1
if: steps.changes.outputs.changed == 'true'
run: pnpm run e2e:rspack --shard=1/2

- name: E2E Test - 2
if: steps.changes.outputs.changed == 'true'
run: pnpm run e2e:rspack --shard=2/2

# ======== e2e-webpack ========
e2e-webpack:
runs-on: ${{ matrix.os }}
needs: changes
if: needs.changes.outputs.changed == 'true'
timeout-minutes: 15
strategy:
matrix:
Expand All @@ -131,32 +135,17 @@ jobs:
npm install -g corepack@latest --force
corepack enable

- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
predicate-quantifier: 'every'
filters: |
changed:
- "!**/*.md"
- "!**/*.mdx"
- "!**/_meta.json"
- "!**/dictionary.txt"

- name: Setup Node.js
if: steps.changes.outputs.changed == 'true'
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
with:
node-version: 22
cache: 'pnpm'

- name: Install Dependencies
if: steps.changes.outputs.changed == 'true'
run: pnpm install && cd ./e2e && npx playwright install chromium

- name: E2E Test - 1
if: steps.changes.outputs.changed == 'true'
run: pnpm run e2e:webpack --shard=1/2

- name: E2E Test - 2
if: steps.changes.outputs.changed == 'true'
run: pnpm run e2e:webpack --shard=2/2
Loading