feat(web-analytics): Add staleness check and update warning #58812
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: Frontend CI | |
on: | |
pull_request: | |
# NOTE: by running on master, aside from highlight issues on master it also | |
# ensures we have e.g. node modules cached for master, which can then be | |
# used for branches. See https://github.com/actions/cache#cache-scopes for | |
# scope details. | |
push: | |
branches: | |
- master | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
frontend-code-quality: | |
name: Code quality checks | |
# kea typegen and typescript:check need some more oomph | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8.x.x | |
- name: Set up Node.js | |
uses: buildjet/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Get pnpm cache directory path | |
id: pnpm-cache-dir | |
run: echo "PNPM_STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v3 | |
id: pnpm-cache | |
with: | |
path: ${{ steps.pnpm-cache-dir.outputs.PNPM_STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-cypress-${{ hashFiles('pnpm-lock.yaml') }} | |
restore-keys: ${{ runner.os }}-pnpm-cypress- | |
- name: Install package.json dependencies with pnpm | |
run: pnpm install --frozen-lockfile | |
- name: Check formatting with prettier | |
run: pnpm prettier:check | |
- name: Lint with ESLint | |
run: pnpm lint:js | |
- name: Lint with Stylelint | |
run: pnpm lint:css | |
- name: Generate logic types and run typescript with strict | |
run: pnpm typegen:write && pnpm typescript:check | |
- name: Check if "schema.json" is up to date | |
run: pnpm schema:build:json && git diff --exit-code | |
- name: Check toolbar bundle size | |
uses: preactjs/compressed-size-action@v2 | |
with: | |
build-script: 'build' | |
compression: 'none' | |
pattern: 'frontend/dist/toolbar.js' | |
jest: | |
runs-on: ubuntu-latest | |
name: Jest test (${{ matrix.chunk }}) | |
strategy: | |
# If one test fails, still run the others | |
fail-fast: false | |
matrix: | |
chunk: [1, 2, 3] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8.x.x | |
- name: Set up Node.js | |
uses: buildjet/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install package.json dependencies with pnpm | |
run: pnpm install --frozen-lockfile | |
- name: Test with Jest | |
# set maxWorkers or Jest only uses 1 CPU in GitHub Actions | |
run: pnpm test:unit --maxWorkers=2 --shard=${{ matrix.chunk }}/3 | |
env: | |
NODE_OPTIONS: --max-old-space-size=6144 |