cache playwright binaries and shard tests #1992
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: test | |
on: [push] | |
jobs: | |
fe-unit-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: ./.github/actions/setup-and-login | |
with: | |
install-packages: true | |
- name: Test front end | |
run: npm run coverage --prefix=app/static | |
- uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true # optional (default = false) | |
files: ./app/static/coverage/coverage-final.json | |
token: ${{ secrets.CODECOV_TOKEN }} # required | |
be-unit-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: ./.github/actions/setup-and-login | |
with: | |
build-and-run-server: true | |
- name: Test back end | |
run: npm test --prefix=app/server | |
- name: Check versions | |
run: npm run genversion --prefix=app/server -- --check-only | |
- uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true # optional (default = false) | |
files: ./app/server/coverage/coverage-final.json | |
token: ${{ secrets.CODECOV_TOKEN }} # required | |
integration-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: ./.github/actions/setup-and-login | |
with: | |
build-and-run-server: true | |
- name: Test back end integration | |
run: npm run integration-test --prefix=app/server | |
playwright-tests: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
shard: [1, 2, 3, 4, 5, 6] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: ./.github/actions/setup-and-login | |
with: | |
build-and-run-server: true | |
- name: Get installed Playwright version | |
run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./app/static/package-lock.json').packages['node_modules/@playwright/test'].version)")" >> $GITHUB_ENV | |
- name: Cache playwright binaries | |
uses: actions/cache@v4 | |
id: playwright-cache | |
with: | |
path: | | |
~/.cache/ms-playwright | |
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }} | |
- name: Install Playwright Browsers | |
if: steps.playwright-cache.outputs.cache-hit != 'true' | |
run: npx playwright install --with-deps | |
- name: Test e2e | |
run: npm run test:e2e --prefix=app/static -- --shard=${{ matrix.shard }}/6 | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: ./.github/actions/setup-and-login | |
with: | |
install-packages: true | |
- name: Lint back end | |
run: npm run lint --prefix=app/server | |
- name: Lint front end | |
run: npm run lint --prefix=app/static |