Files
Timmy-time-dashboard/.gitea/workflows/tests.yml
Trip T f6a6c0f62e
All checks were successful
Tests / lint (pull_request) Successful in 2s
Tests / test (pull_request) Successful in 32s
feat: upgrade to qwen3.5, self-hosted Gitea CI, optimize Docker image
Model upgrade:
- qwen2.5:14b → qwen3.5:latest across config, tools, and docs
- Added qwen3.5 to multimodal model registry

Self-hosted Gitea CI:
- .gitea/workflows/tests.yml: lint + test jobs via act_runner
- Unified Dockerfile: pre-baked deps from poetry.lock for fast CI
- sitepackages=true in tox for ~2s dep resolution (was ~40s)
- OLLAMA_URL set to dead port in CI to prevent real LLM calls

Test isolation fixes:
- Smoke test fixture mocks create_timmy (was hitting real Ollama)
- WebSocket sends initial_state before joining broadcast pool (race fix)
- Tests use settings.ollama_model/url instead of hardcoded values
- skip_ci marker for Ollama-dependent tests, excluded in CI tox envs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 18:36:42 -04:00

41 lines
1.0 KiB
YAML

name: Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
# Runs in timmy-time:latest — tox, ruff, and all deps are pre-installed.
# Rebuild the image only when poetry.lock changes:
# docker build -t timmy-time:latest .
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lint (ruff via tox)
run: tox -e lint
test:
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v4
- name: Run tests (via tox)
env:
OLLAMA_URL: "http://127.0.0.1:1"
run: tox -e ci
- name: Test summary
if: always()
run: |
if [ -f reports/junit.xml ]; then
python3 -c "
import xml.etree.ElementTree as ET
root = ET.parse('reports/junit.xml').getroot()
t,f,e,s = (root.attrib.get(k,'0') for k in ('tests','failures','errors','skipped'))
print(f'Tests: {t} | Failures: {f} | Errors: {e} | Skipped: {s}')
"
fi