Skip to content

Test playwright windows #30

Test playwright windows

Test playwright windows #30

Workflow file for this run

name: App Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
permissions:
contents: read
jobs:
test-package:
name: Test ${{ matrix.os }} Python ${{ matrix.python_version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest-xlarge", "macos-13"]
python_version: ["3.10", "3.11", "3.12"]
exclude:
- os: macos-latest-xlarge
python_version: "3.10"
steps:
- uses: actions/checkout@v4
- name: Check for MacOS Runner
if: matrix.os == 'macos-latest-xlarge'
run: brew install postgresql@14
- name: Install pgvector on Windows using install-pgvector.bat
if: matrix.os == 'windows-latest'
shell: cmd
run: .github\workflows\install-pgvector.bat
- name: Install PostgreSQL development libraries
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt update
sudo apt install postgresql-server-dev-14
- name: Setup postgres
uses: ikalnytskyi/action-setup-postgres@v6
with:
username: admin
password: postgres
database: postgres
- name: Install pgvector on MacOS/Linux using install-pgvector.sh
if: matrix.os != 'windows-latest'
run: .github/workflows/install-pgvector.sh
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
architecture: x64
- name: Install dependencies
run: |
python -m pip install -r requirements-dev.txt
- name: Install app as editable app
run: |
python -m pip install -e src/backend
- name: Setup local database with seed data
run: |
cp .env.sample .env
python ./src/backend/fastapi_app/setup_postgres_database.py
python ./src/backend/fastapi_app/setup_postgres_seeddata.py
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 18
- name: Build frontend
run: |
cd ./src/frontend
npm install
npm run build
- name: Run MyPy
run: python3 -m mypy .
- name: Run Pytest
run: python3 -m pytest -s -vv --cov --cov-fail-under=85
- name: Run E2E tests with Playwright
id: e2e
if: runner.os != 'Windows'
run: |
playwright install chromium --with-deps
python3 -m pytest tests/e2e.py --tracing=retain-on-failure
- name: Run E2E tests on Windows with Playwright
if: runner.os == 'Windows'
run: |
playwright install chromium --with-deps
python3 -m pytest tests/e2e.py
- name: Upload test artifacts
if: ${{ failure() && steps.e2e.conclusion == 'failure' && runner.os != 'Windows' }}
uses: actions/upload-artifact@v4
with:
name: playwright-traces${{ matrix.python_version }}
path: test-results