Skip to content

Commit

Permalink
Add playwright script back to CI action
Browse files Browse the repository at this point in the history
This runs the end to end tests as part of PRs and is necessary now that
we added the accessibility tests back in.
  • Loading branch information
tvararu committed Sep 25, 2024
1 parent 7ae3114 commit 967ffaf
Showing 1 changed file with 59 additions and 7 deletions.
66 changes: 59 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ jobs:
rails:
name: Rails
runs-on: ubuntu-latest

services:
postgres:
image: postgres:13.5
Expand All @@ -22,11 +21,9 @@ jobs:
--health-retries 5
ports:
- 5432:5432

env:
DATABASE_URL: postgres://postgres:postgres@localhost:5432/manage_vaccinations_test
RAILS_ENV: test

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
Expand All @@ -36,20 +33,16 @@ jobs:
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true

- name: Setup database
run: bin/rails db:test:prepare

- name: Precompile assets
run: bin/rails assets:precompile

- name: Run rspec
run: bundle exec rspec spec

jest:
name: Jest
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
Expand All @@ -58,3 +51,62 @@ jobs:
cache: yarn
- run: yarn install --immutable --immutable-cache --check-cache
- run: yarn test

playwright:
timeout-minutes: 60
name: Playwright
runs-on: ubuntu-latest
services:
postgres:
image: postgres:13.5
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
env:
DATABASE_URL: postgres://postgres:postgres@localhost:5432/manage_vaccinations_test
RAILS_ENV: test
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: .tool-versions
bundler-cache: true
- name: Get Node.js version
id: asdf
run: echo "::set-output name=VERSION::$(grep nodejs .tool-versions | awk '{print $2}')"
- uses: actions/setup-node@v4
with:
node-version: ${{ steps.asdf.outputs.VERSION }}
cache: "yarn"
- run: bundle
- run: yarn install --frozen-lockfile
- run: bin/rails db:prepare
- name: Get installed Playwright version
id: playwright-version
run: echo "PLAYWRIGHT_VERSION=$(yarn list --pattern '@playwright/test' --depth 0 -s | cut -d @ -f 3)" >> $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
run: yarn playwright install --with-deps
if: steps.playwright-cache.outputs.cache-hit != 'true'
- name: Precompile assets
run: bin/rails assets:precompile
- name: Run Playwright tests
run: yarn test:e2e
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright?report
retention-days: 10

0 comments on commit 967ffaf

Please sign in to comment.