From 624a68693ba198c48ee9d80b933b690eb58e82fe Mon Sep 17 00:00:00 2001 From: SoonIter Date: Mon, 5 Aug 2024 20:07:52 +0800 Subject: [PATCH] ci: add windows test --- .github/workflows/test-ubuntu.yml | 4 + .github/workflows/test-windows.yml | 120 +++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 .github/workflows/test-windows.yml diff --git a/.github/workflows/test-ubuntu.yml b/.github/workflows/test-ubuntu.yml index b91d58acb..f1e529e0d 100644 --- a/.github/workflows/test-ubuntu.yml +++ b/.github/workflows/test-ubuntu.yml @@ -42,6 +42,8 @@ jobs: changed: - "!**/*.md" - "!**/*.mdx" + - "!**/_meta.json" + - "!**/dictionary.txt" - name: Setup Node.js ${{ matrix.node-version }} if: steps.changes.outputs.changed == 'true' @@ -83,6 +85,8 @@ jobs: changed: - "!**/*.md" - "!**/*.mdx" + - "!**/_meta.json" + - "!**/dictionary.txt" - name: Setup Node.js ${{ matrix.node-version }} if: steps.changes.outputs.changed == 'true' diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml new file mode 100644 index 000000000..61b4b4bac --- /dev/null +++ b/.github/workflows/test-windows.yml @@ -0,0 +1,120 @@ +name: Test (Windows) + +# Controls when the action will run. +on: + # Triggers the workflow on pull request events but only for the main branch + pull_request: + branches: [main] + + push: + branches: [main] + + merge_group: + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # ======== ut ======== + ut-windows: + runs-on: windows-latest + strategy: + matrix: + node-version: [18.x] + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Git config + shell: bash + run: | + git config --system core.longpaths true + + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 10 + + - name: Install Pnpm + run: corepack enable + + - uses: dorny/paths-filter@v3 + id: changes + with: + predicate-quantifier: 'every' + filters: | + changed: + - "!**/*.md" + - "!**/*.mdx" + - "!**/_meta.json" + - "!**/dictionary.txt" + + - name: Setup Node.js ${{ matrix.node-version }} + if: steps.changes.outputs.changed == 'true' + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + 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 test:unit + + # # ======== e2e ======== + e2e-windows: + runs-on: windows-latest + strategy: + matrix: + node-version: [18.x] + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Git config + shell: bash + run: | + git config --system core.longpaths true + + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 10 + + - name: Install Pnpm + run: corepack enable + + - uses: dorny/paths-filter@v3 + id: changes + with: + predicate-quantifier: 'every' + filters: | + changed: + - "!**/*.md" + - "!**/*.mdx" + - "!**/_meta.json" + - "!**/dictionary.txt" + + - name: Setup Node.js ${{ matrix.node-version }} + if: steps.changes.outputs.changed == 'true' + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'pnpm' + + - name: Install Dependencies + if: steps.changes.outputs.changed == 'true' + run: pnpm install && cd ./e2e && npx playwright install + + - name: E2E Test + if: steps.changes.outputs.changed == 'true' + run: | + pnpm run test:artifact + pnpm run test:e2e + + - name: Examples Test + if: steps.changes.outputs.changed == 'true' + run: | + pnpm run build:examples