/
githubmirror
/
taro
Обзор
Документация
Войти
/
githubmirror
/
taro
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
.github/workflows/nodejs.yml
180 строк
6 KB
vasily
fix(ci): pin pnpm version across workflows (#19272)
25 май 2026, 10:52
Не верифицирован
25 май 2026, 10:52
bd51e97
Код
Авторство
О чём код?
name: Node CI env: DEBUG: napi:* MACOSX_DEPLOYMENT_TARGET: '10.13' on: push: branches: - 'chore/**' - 'feat/**' - 'fix/**' - '1.x' - '2.x' - '3.x' - '4.x' - main pull_request: branches: - main permissions: contents: read # to fetch code (actions/checkout) concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build-rust-binding: name: Build Rust Binding uses: ./.github/workflows/build-rust-binding.yml build-rust-wasm: name: Build Rust WASM uses: ./.github/workflows/build-rust-wasm.yml nodejs-testing: name: Testing on Node.js ${{ matrix.node-version }} (${{ matrix.host }}) needs: - build-rust-binding - build-rust-wasm strategy: matrix: node-version: [18.x, 20.x] host: [macos-latest, windows-latest, ubuntu-latest] exclude: - node-version: 18.x host: macos-latest - node-version: 18.x host: windows-latest - node-version: 20.x host: macos-latest - node-version: 20.x host: windows-latest include: - host: macos-latest target: x86_64-apple-darwin - host: windows-latest target: x86_64-pc-windows-msvc - host: ubuntu-latest target: x86_64-unknown-linux-gnu - host: ubuntu-latest target: x86_64-unknown-linux-musl runs-on: ${{ matrix.host }} steps: - name: Checkout uses: actions/checkout@v5 - name: Setup pnpm uses: pnpm/action-setup@v4 with: version: 10.0.0 - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v6 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' - name: Install dependencies run: pnpm -r install --frozen-lockfile - name: Lint run: pnpm lint - name: Download artifact bindings-${{ matrix.target }} uses: actions/download-artifact@v6 with: name: bindings-${{ matrix.target }} path: crates/native_binding - name: Test bindings run: pnpm test:binding if: ${{ matrix.host != 'ubuntu-latest' }} - name: Test bindings with docker if: ${{ matrix.host == 'ubuntu-latest' }} shell: bash run: | docker_image="node:${{ matrix.node-version == '18.x' && '18-bullseye' || '20-bullseye' }}" docker run --rm -v "$(pwd):/build" -w /build "$docker_image" bash -lc "npm install -g corepack@0.31.0 && corepack enable && corepack prepare pnpm@10.0.0 --activate && pnpm test:binding" # 以下的测试流程应该在所有平台都执行,但 windows 好像还有些问题,因此目前只在 ubuntu-latest 执行 - name: Download all artifacts uses: actions/download-artifact@v6 with: path: crates/native_binding/artifacts - name: List Package crates/native_binding run: ls -R ./crates/native_binding shell: bash - name: Move artifacts run: pnpm artifacts - name: build shell: bash run: | if [ "${{ matrix.host }}" = "windows-latest" ]; then pnpm build:serial else pnpm build fi env: NODE_OPTIONS: --max_old_space_size=4096 - name: test #TODO: 需要优化测试流程,目前 macos 无法正常执行测试,暂时跳过,等待后续优化 shell: bash run: | if [ "${{ matrix.host }}" = "macos-latest" ]; then pnpm -r --aggregate-output --filter=./packages/* --filter=./tests --filter=!@tarojs/components test:ci else pnpm test fi # 以下 coverage 流程通过 artifact 拆分文件作为单独 job 上传时间损耗过长,因此在在 node test 后直接继续执行 - name: Upload [taro-cli] coverage to Codecov uses: codecov/codecov-action@v5 if: ${{ matrix.host == 'ubuntu-latest' }} with: flags: taro-cli files: ./packages/taro-cli/coverage/clover.xml token: ${{ secrets.CODECOV_TOKEN }} - name: Upload runner coverage to Codecov uses: codecov/codecov-action@v5 if: ${{ matrix.host == 'ubuntu-latest' }} with: flags: taro-runner files: ./packages/taro-webpack5-runner/coverage/clover.xml token: ${{ secrets.CODECOV_TOKEN }} - name: Upload [taro-runtime] coverage to Codecov uses: codecov/codecov-action@v5 if: ${{ matrix.host == 'ubuntu-latest' }} with: flags: taro-runtime files: ./packages/taro-runtime/coverage/clover.xml token: ${{ secrets.CODECOV_TOKEN }} - name: Upload [taro-web] coverage to Codecov uses: codecov/codecov-action@v5 if: ${{ matrix.host == 'ubuntu-latest' }} with: flags: taro-web files: ./packages/taro-components/coverage/clover.xml,./packages/taro-h5/coverage/clover.xml,./packages/taro-router/coverage/clover.xml token: ${{ secrets.CODECOV_TOKEN }} - name: Upload rest coverage to Codecov uses: codecov/codecov-action@v5 if: ${{ matrix.host == 'ubuntu-latest' }} with: token: ${{ secrets.CODECOV_TOKEN }} rust-testing: name: Testing on Rust runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v5 - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: toolchain: stable targets: wasm32-wasip1 - name: Cache cargo uses: actions/cache@v4 with: path: | ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ .cargo-cache target/ key: wasm32-wasi-cargo-ubuntu-latest - name: Test run: cargo test-swc-plugins