Skip to content

E2E Tests

E2E Tests #53

Workflow file for this run

name: E2E Tests
on:
push:
branches:
- main
workflow_dispatch:
inputs:
branchName:
description: 'Branch name.'
default: 'develop'
type: string
testPath:
description: 'Files to test.'
default: 'tests'
type: string
jobs:
test:
name: E2E Tests
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/[email protected]
with:
ref: ${{ inputs.branchName || 'main' }}
- name: Apt Pkgs
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libnss3-tools
version: 1.3.1
- name: Install mkcert
run: |
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64"
chmod +x mkcert-v*-linux-amd64
sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
- name: Install Certificates
run: |
mkcert -install
mkcert -key-file busmap.localhost-key.pem -cert-file busmap.localhost.pem busmap.localhost localhost
cp *.pem packages/web/certs
- name: Setup Node
uses: actions/[email protected]
with:
node-version: '20.11.0'
- name: Install Dependencies
run: npm ci
- name: Install Playwright
run: npx playwright install --with-deps
- name: Run Tests
run: npm test -- ${{ inputs.testPath || 'tests' }}
env:
CI: true
SERVER_NAME: localhost
HOST_NAME: localhost
UPSTREAM_API_HOST: api
SSL_CERT_PATH: /etc/nginx/certs/busmap.localhost.pem
SSL_KEY_PATH: /etc/nginx/certs/busmap.localhost-key.pem
BM_REDIS_HOST: redis://session
BM_SESSION_STORE: redis
BM_COOKIE_SECURE: true
BM_COOKIE_SAMESITE: strict
BM_COOKIE_SECRET: ${{ secrets.BM_COOKIE_SECRET }}
BM_POSTGRES_PASSWORD: ${{ secrets.BM_POSTGRES_PASSWORD }}
BM_POSTGRES_USER: ${{ secrets.BM_POSTGRES_USER }}
BM_POSTGRES_DB: ${{ secrets.BM_POSTGRES_DB }}
SSO_GOOG_CLIENT_ID: ${{ secrets.SSO_GOOG_CLIENT_ID }}
SSO_GOOG_CLIENT_SECRET: ${{ secrets.SSO_GOOG_CLIENT_SECRET }}
- name: Upload Test Results
uses: actions/[email protected]
if: failure()
with:
name: playwright-report
path: test-results
retention-days: 15