[DO NOT MERGE] Trigger CI for #4897: chore: migrate from yarn to pnpm #2805
Workflow file for this run
This file contains 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: Run unit tests | |
on: | |
push: | |
branches: | |
- master | |
- release | |
- 'spring*' | |
- 'summer*' | |
- 'winter*' | |
pull_request: | |
branches: | |
- master | |
- release | |
- 'spring*' | |
- 'summer*' | |
- 'winter*' | |
env: | |
PUPPETEER_SKIP_DOWNLOAD: 'true' # only needed for @best/runner-local, unused here | |
jobs: | |
run-unit-tests: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v4 | |
with: | |
version: 9.14.2 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20.18.0' | |
cache: 'pnpm' | |
# Needed for perf smoke tests, matches the chromedriver version installed by tachometer (https://github.com/google/tachometer/blob/main/README.md#on-demand-dependencies) | |
# chrome-version documentation can be found here: https://github.com/browser-actions/setup-chrome?tab=readme-ov-file#usage | |
- name: Setup chrome | |
uses: browser-actions/setup-chrome@v1 | |
with: | |
chrome-version: 130 | |
id: setup-chrome | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
# Pin chromedriver to the same version as Chrome above, so Tachometer uses this version. | |
# See: https://github.com/google/tachometer#on-demand-dependencies | |
- name: Install chromedriver | |
run: pnpm add -w chromedriver@^130 | |
- name: Check package.json integrity | |
run: node ./scripts/tasks/check-and-rewrite-package-json.js --test | |
- name: Check licenses are up to date | |
run: node ./scripts/tasks/generate-license-files.js --test | |
- name: Verify @lwc/shared is tree-shakable | |
run: node ./scripts/tasks/verify-treeshakable.js ./packages/@lwc/shared/dist/index.js | |
- name: Verify that dependencies are declared | |
run: node ./scripts/tasks/check-imports-are-declared-dependencies.js | |
- name: Check formatting | |
run: pnpm prettier --check '{packages,scripts}/**/*.{js,ts,json,md}' | |
- name: Run linter | |
run: pnpm lint | |
- name: Check the size of the LWC bundle | |
run: pnpm bundlesize | |
- name: Check types | |
run: pnpm test:types | |
- name: Run unit tests | |
run: pnpm test:ci | |
# TODO [#4815]: enable all SSR v2 tests | |
- name: Run experimental SSR fixture tests | |
run: TEST_SSR_COMPILER=1 pnpm test packages/@lwc/ssr-compiler/src/__tests__/fixtures.spec.ts | |
- name: Upload unit test coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-coverage-report | |
path: coverage/ | |
- name: Run benchmark smoke tests | |
run: CHROME_BINARY=${{ steps.setup-chrome.outputs.chrome-path }} BENCHMARK_SMOKE_TEST=1 pnpm test:performance | |
- name: Add step summary | |
# 1. Remove leading/trailing "border" lines from output | |
# 2. Wrap file names in backticks | |
# 3. Convert leading whitespace to non-breaking to approximate plaintext output | |
run: sed -E '$d;1d;4,$s/^( ?)([^ ]+)/\1`\2`/g;4,$s/^ /\ \ /g' coverage/coverage.txt >> "$GITHUB_STEP_SUMMARY" |