Skip to content

FET-1707: Improve unit test coverage WIP #4188

FET-1707: Improve unit test coverage WIP

FET-1707: Improve unit test coverage WIP #4188

Workflow file for this run

name: Test
on: [push]
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
jobs:
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install pnpm
run: corepack enable pnpm
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- name: Get contract addresses
run: 'parallel --lb --halt now,success=1,fail=1 ::: \
"pnpm tenv start -ng -ns -nb" \
"pnpm wait-on ./.env.local"'
- run: pnpm test:coverage
build-stateless:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install pnpm
run: corepack enable pnpm
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- name: Get contract addresses
run: 'parallel --lb --halt now,success=1,fail=1 ::: \
"pnpm tenv start -ng -ns -nb" \
"pnpm wait-on ./.env.local"'
- name: Build stateless and export
run: pnpm build:glocal && pnpm export
- name: Tar stateless files
run: tar -cvf stateless-build.tar out
- name: Upload stateless
uses: actions/upload-artifact@v3
with:
name: stateless-build
path: stateless-build.tar
build-stateful:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install pnpm
run: corepack enable pnpm
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- name: Build stateful and export
run: pnpm build && pnpm export
- name: Tar stateful files
run: tar -cvf stateful-build.tar out
- name: Upload stateful
uses: actions/upload-artifact@v3
with:
name: stateful-build
path: stateful-build.tar
stateless:
name: stateless (${{matrix.shard}})
needs: build-stateless
timeout-minutes: 20
runs-on: ubuntu-latest
strategy:
matrix:
shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
steps:
- uses: actions/checkout@v3
- name: Install pnpm
run: corepack enable pnpm
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- run: pnpm rebuild -r
- name: Download build
id: download
uses: actions/download-artifact@v3
with:
name: stateless-build
- name: Untar files
run: tar -xvf stateless-build.tar
- name: Install playwright
run: npx playwright install chromium
- name: Run tests
run: |
PLAYWRIGHT_SHARD=${{matrix.shard}} PLAYWRIGHT_TOTAL=${{strategy.job-total}} pnpm e2e:ci -nb
- uses: actions/upload-artifact@v3
if: always()
with:
name: stateless-report
path: playwright-report/
retention-days: 30
stateful:
name: stateful (${{matrix.shard}})
needs: build-stateful
timeout-minutes: 10
runs-on: ubuntu-latest
strategy:
matrix:
shard: [1, 2, 3]
steps:
- uses: actions/checkout@v3
- run: ./scripts/check-chrome.sh
- name: Install pnpm
run: corepack enable pnpm
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- run: pnpm rebuild -r
- name: Download build
id: download
uses: actions/download-artifact@v3
with:
name: stateful-build
- name: Untar files
run: tar -xvf stateful-build.tar
- name: Install playwright
run: npx playwright install chromium
- name: Run tests
run: |
parallel --lb --halt now,success=1,fail=1 ::: \
"pnpm wrangle" \
"pnpm wait-on http://127.0.0.1:8788 && npx playwright test --shard=${{matrix.shard}}/${{strategy.job-total}} --project=stateful"
env:
# NEXT_PUBLIC_GRAPH_URI: https://api.studio.thegraph.com/query/49574/ensholesky/version/latest
SECRET_WORDS: ${{ secrets.SECRET_WORDS }}
- uses: actions/upload-artifact@v3
if: always()
with:
name: stateful-report
path: playwright-report/
retention-days: 30