Skip to content

Fix: Update Qt dependencies for Ubuntu 22.04+ #7

Fix: Update Qt dependencies for Ubuntu 22.04+

Fix: Update Qt dependencies for Ubuntu 22.04+ #7

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install system dependencies (Ubuntu)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libgl1 libegl1 libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 libxcb-shape0 libdbus-1-3
- name: Install uv
run: pip install uv
- name: Create virtual environment and install dependencies
run: |
uv venv
uv pip install -e .
- name: Run diagnostics
run: uv run python diagnose.py
- name: Check imports (non-GUI modules)
run: |
uv run python -c "from src.util import tokenize_title; print('Utils OK')"
uv run python -c "from src.aggregate import aggregate; print('Aggregate OK')"
uv run python -c "from src.app.controller import AppController; print('Controller OK')"
- name: Check GUI imports (skip on headless)
if: runner.os != 'Linux'
run: uv run python -c "from src.app.mainwindow import MainWindow; print('GUI OK')"
- name: Run unit tests
run: |
uv pip install pytest pytest-cov
uv run pytest tests/ -v --cov=src --cov-report=term-missing
continue-on-error: false
- name: Run linting (ruff)
run: |
uv pip install ruff
uv run ruff check src/ --select E,F,W --ignore E501
continue-on-error: true
- name: Check code formatting (ruff)
run: |
uv run ruff format --check src/
continue-on-error: true
- name: Type checking (mypy)
run: |
uv pip install mypy types-PyYAML types-requests
uv run mypy src/ --ignore-missing-imports
continue-on-error: true
- name: Security scanning (bandit)
run: |
uv pip install bandit
uv run bandit -r src/ -f txt
continue-on-error: true
- name: Dependency vulnerability check (safety)
run: |
uv pip install safety
uv run safety check --json
continue-on-error: true