name: CI on: push: branches: ["master"] pull_request: branches: ["master"] jobs: build-test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install Poetry run: python -m pip install --upgrade pip poetry - name: Install dependencies run: | poetry config virtualenvs.create false poetry install --with dev - name: Install Playwright browsers run: poetry run playwright install --with-deps chromium - name: Build package run: poetry build - name: Validate workflow JSON files run: poetry run validate-workflows - name: Static analysis run: poetry run python -m compileall backend - name: Lint (errors only) run: | python -m pip install pylint poetry run pylint --errors-only backend/autometabuilder - name: Unit tests run: PYTHONPATH=backend poetry run pytest backend/tests/test_main.py backend/tests/test_metadata.py backend/tests/test_roadmap.py - name: UI tests run: PYTHONPATH=backend poetry run pytest backend/tests/ui