Skip to content

chore(deps): update devdeps (major) #3098

chore(deps): update devdeps (major)

chore(deps): update devdeps (major) #3098

name: build-test-on-pr-cached
on: [pull_request, workflow_dispatch]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v3
with:
version: 9
- run: pnpm add -g pnpm
- name: 'Setup Node.js with pnpm cache'
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install
- run: pnpm build
- name: 'Save build output'
uses: actions/cache/save@v4
with:
path: '${{ github.workspace }}'
key: '${{ runner.os }}-build-${{ github.sha }}-${{ github.run_id }}'
test-integration:
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
shard: [1, 2, 3, 4, 5]
services:
postgres:
image: postgres:16.0
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: test123
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: pnpm/action-setup@v3
with:
version: 9
- run: pnpm add -g pnpm
- name: 'Restore build output'
uses: actions/cache/restore@v4
with:
path: '${{ github.workspace }}'
key: '${{ runner.os }}-build-${{ github.sha }}-${{ github.run_id }}'
restore-keys: '${{ runner.os }}-build-${{ github.sha }}'
fail-on-cache-miss: true
- name: 'Setup Node.js with pnpm cache'
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: 'Run integration tests'
env:
INCLUDE_POSTGRES_TESTS: true
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
POSTGRES_PASSWORD: test123
POSTGRES_PORT: 5432
run: pnpm test:integration --shard=${{ matrix.shard }}/${{ strategy.job-total }}
- run: mv coverage/coverage-final.json coverage/${{matrix.shard}}.json
- uses: actions/upload-artifact@v4
with:
name: coverage-artifacts-${{matrix.shard}}
path: coverage/
report-coverage:
runs-on: ubuntu-latest
needs: [test-integration]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/download-artifact@v4
with:
pattern: coverage-artifacts-*
merge-multiple: true
path: coverage
- name: Merge Code Coverage
run: npx nyc merge coverage/ coverage/coverage-final.json
- uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos but sometimes fails without :|
fail_ci_if_error: true
test-browser:
needs: build
runs-on: ubuntu-latest
steps:
- uses: pnpm/action-setup@v3
with:
version: 9
- run: pnpm add -g pnpm
- name: 'Restore build output'
uses: actions/cache/restore@v4
with:
path: '${{ github.workspace }}'
key: '${{ runner.os }}-build-${{ github.sha }}-${{ github.run_id }}'
restore-keys: '${{ runner.os }}-build-${{ github.sha }}'
fail-on-cache-miss: true
- name: 'Setup Node.js with pnpm cache'
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install
- run: pnpm rebuild -r
- name: 'Run browser tests'
run: pnpm test:browser
lint-and-docs:
needs: build
runs-on: ubuntu-latest
steps:
- uses: pnpm/action-setup@v3
with:
version: 9
- run: pnpm add -g pnpm
- name: 'Restore build output'
uses: actions/cache/restore@v4
with:
path: '${{ github.workspace }}'
key: '${{ runner.os }}-build-${{ github.sha }}-${{ github.run_id }}'
restore-keys: '${{ runner.os }}-build-${{ github.sha }}'
fail-on-cache-miss: true
- name: 'Setup Node.js with pnpm cache'
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- run: pnpm run lint
- run: pnpm run docs