|
name: DevPlace CI
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.13"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install -e ".[dev]"
|
|
python -m playwright install chromium --with-deps
|
|
|
|
- name: Run integration tests with coverage
|
|
env:
|
|
COVERAGE_PROCESS_START: ${{ github.workspace }}/.coveragerc
|
|
PLAYWRIGHT_HEADLESS: "1"
|
|
run: |
|
|
python -m coverage run -m pytest tests/ -p no:xdist --tb=line
|
|
|
|
- name: Build coverage report
|
|
if: always()
|
|
run: |
|
|
python -m coverage combine
|
|
python -m coverage report
|
|
python -m coverage html
|
|
|
|
- name: Publish coverage HTML
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: coverage-html
|
|
path: htmlcov/
|
|
|
|
- name: Upload test screenshots
|
|
if: failure()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: failure-screenshots
|
|
path: /tmp/devplace_test_screenshots/
|
|
|