Skip to content

chore: Cypress E2E test refactor #13010

chore: Cypress E2E test refactor

chore: Cypress E2E test refactor #13010

Workflow file for this run

name: E2E Tests
on:
pull_request:
branches: [develop, main, feature/*]
jobs:
cypress-run:
name: Cypress
runs-on: ubuntu-latest
services:
# Label used to access the service container
postgres:
# Docker Hub image
image: postgres@sha256:71da05df8c4f1e1bac9b92ebfba2a0eeb183f6ac6a972fd5e55e8146e29efe9c
env:
POSTGRES_PASSWORD: postgres
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
redis:
# Docker Hub image
image: redis@sha256:2976bc0437deff693af2dcf081a1d1758de8b413e6de861151a5a136c25eb9e4
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
env:
# Needed for Next Auth to initialize
TOKEN_SECRET: testKey
APP_ENV: test
NEXT_PUBLIC_APP_ENV: test
REDIS_URL: localhost
DATABASE_URL: postgres://postgres:postgres@localhost:5432/formsDB
steps:
- name: Checkout
uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # v1.2.0
- name: Node.JS Setup
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3.8.2
with:
node-version-file: .nvmrc
- name: Yarn update to V4
run: corepack enable && yarn set version berry
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: linux-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
linux-yarn-
- name: "Install dependencies"
run: yarn workspaces focus gcforms flag_initialization
- name: Cypress Tests
uses: cypress-io/github-action@1b70233146622b69e789ccdd4f9452adc638d25a # v6.6.1
with:
# we have already installed all dependencies above
install: false
browser: chrome
headed: false
build: yarn build:test
start: yarn start:test
wait-on: "http://localhost:3000"
config: baseUrl=http://localhost:3000
- uses: actions/upload-artifact@3446296876d12d4e3a0f3145a3c87e67bf0a16b5 # tag=v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots