Test playwright windows #33
Workflow file for this run
This file contains hidden or 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: 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: ["windows-latest"] | |
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 |