| 1 | name: CI |
| 2 | |
| 3 | on: |
| 4 | pull_request: |
| 5 | push: |
| 6 | branches: |
| 7 | - main |
| 8 | |
| 9 | jobs: |
| 10 | tests: |
| 11 | name: Python tests |
| 12 | runs-on: ubuntu-latest |
| 13 | |
| 14 | steps: |
| 15 | - name: Check out repository |
| 16 | uses: actions/checkout@v4 |
| 17 | |
| 18 | - name: Set up Python |
| 19 | uses: actions/setup-python@v5 |
| 20 | with: |
| 21 | python-version: "3.11" |
| 22 | |
| 23 | - name: Install uv |
| 24 | uses: astral-sh/setup-uv@v6 |
| 25 | with: |
| 26 | enable-cache: true |
| 27 | |
| 28 | - name: Install dependencies |
| 29 | run: uv sync --frozen |
| 30 | |
| 31 | - name: Compile Python sources |
| 32 | run: uv run python -m compileall app cli.py main.py webui test |
| 33 | |
| 34 | - name: Run deterministic unit tests |
| 35 | run: uv run python -X utf8 -m unittest test.services.test_state test.services.test_task test.services.test_schema test.services.test_webui_i18n |
| 36 |