Merge pull request #32 from nickpisciotta/main #97
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: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
jobs: | |
verify: | |
runs-on: ubuntu-latest | |
env: | |
CI: true | |
NODE_OPTIONS: --max-old-space-size=4096 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 8.9.0 | |
run_install: false | |
- name: fetch default branch | |
run: git fetch origin main | |
- name: use node.js | |
id: node | |
uses: actions/setup-node@v3 | |
with: | |
cache: 'pnpm' | |
node-version-file: .nvmrc | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v3 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: check for duplicated dependencies | |
run: pnpm dedupe --check | |
- name: pnpm install | |
if: steps.cache-modules.outputs.cache-hit != 'true' | |
run: pnpm i | |
# End of pnpm setup | |
- name: prettier | |
run: pnpm prettier:check | |
- name: lint | |
run: pnpm lint:all | |
- name: type checking and declarations | |
run: pnpm tsc:full | |
- name: build all packages | |
run: pnpm build:all | |
- name: test changed packages | |
# Github action runners have 2 cores by default, and Jest by default | |
# creates one worker per core, less one for the main thread. This | |
# means maxWorkers ends up set to 1, and as a result tests are run | |
# in-band. In this situation, workerIdleMemoryLimit is ignored, so | |
# it's not possible to mitigate issues with test memory usage. | |
# | |
# To mitigate this, we explicitly set maxWorkers to 2 to prevent | |
# tests being run in-band alongside setting a memory limit. | |
run: pnpm test -- --maxWorkers=2 |