name: CI on: push: branches: # The branch where the project source code resides # 项目源代码所在的分支 - dev - main paths-ignore: # Changes involving the following path files will not trigger the workflow # 涉及以下路径文件的更改不会触发工作流 - LICENSE - README-cmn_CN.md - README-cmn_TW.md - README-jyut.md - docs/** pull_request: branches: - dev - main paths-ignore: - LICENSE - README-cmn_CN.md - README-cmn_TW.md - README-jyut.md - docs/** jobs: test: name: Test strategy: matrix: node: [lts/*, lts/-1] os: [ubuntu-latest, windows-latest] fail-fast: false runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: - uses: actions/checkout@v4 - name: Set node ${{ matrix.node }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} - name: Install pnpm uses: pnpm/action-setup@v3 with: run_install: | - args: [--frozen-lockfile] - name: Lint if: ${{ matrix.os == 'ubuntu-latest' }} run: pnpm run lint - name: Type check if: ${{ matrix.os == 'ubuntu-latest' }} run: pnpm run typecheck - name: Test run: pnpm run test - name: Knip if: ${{ matrix.os == 'ubuntu-latest' }} run: pnpm run knip - name: Build Extension run: pnpm build - name: Upload Zip if: ${{ matrix.os == 'ubuntu-latest' && matrix.node == 'lts/*' && github.ref_name == 'main' }} uses: actions/upload-artifact@v4.3.1 with: name: BewlyBewly Zip path: extension - name: Build Extension-Firefox run: pnpm build-firefox - name: Upload Zip if: ${{ matrix.os == 'ubuntu-latest' && matrix.node == 'lts/*' && github.ref_name == 'main' }} uses: actions/upload-artifact@v4.3.1 with: name: BewlyBewly-Firefox Zip path: extension-firefox