Commit Graph
8 Commits
Author SHA1 Message Date
OpenCode Cabillot a597ecf6a2 test: instrument qdrant_setup fixture (log url + collections before/after create)
PR Checks / hadolint (pull_request) Successful in 18s
Docker Build and Push / test (pull_request) Successful in 2m32s
Docker Build and Push / integration-test (pull_request) Failing after 2m26s
Docker Build and Push / build (pull_request) Skipped
PR Checks / pytest (pull_request) Successful in 2m0s
PR Checks / build-test (pull_request) Successful in 2m33s
2026-10-09 12:21:45 +00:00
OpenCode Cabillot aa30111a8e ci: unique qdrant container name per run — parallel workflows on one host clash
PR Checks / hadolint (pull_request) Successful in 41s
Docker Build and Push / test (pull_request) Successful in 4m14s
Docker Build and Push / integration-test (pull_request) Failing after 4m23s
Docker Build and Push / build (pull_request) Skipped
PR Checks / pytest (pull_request) Successful in 3m52s
PR Checks / build-test (pull_request) Successful in 5m26s
Two concurrent jobs (docker-build + PR Checks on the same push) both
used container name 'qdrant'; the second job's 'docker rm -f qdrant'
destroyed the first job's Qdrant mid-run, so the test collection 404'd.
Name is now qdrant-${{ github.run_id }} everywhere (cleanup included).
2026-10-09 01:28:43 +00:00
OpenCode Cabillot 55841310bb ci: use pytest -m integration in docker-build.yaml (marker replaces --ignore file check)
PR Checks / hadolint (pull_request) Successful in 40s
PR Checks / build-test (pull_request) Successful in 1m3s
Docker Build and Push / integration-test (pull_request) Failing after 4m52s
PR Checks / pytest (pull_request) Successful in 3m55s
Docker Build and Push / test (pull_request) Successful in 4m31s
Docker Build and Push / build (pull_request) Skipped
2026-10-09 01:07:34 +00:00
OpenCode Cabillot 9417e577a9 test: mark integration suite with pytest.mark.integration
PR Checks / hadolint (pull_request) Successful in 32s
Docker Build and Push / test (pull_request) Successful in 3m40s
Docker Build and Push / integration-test (pull_request) Failing after 4m20s
Docker Build and Push / build (pull_request) Skipped
PR Checks / pytest (pull_request) Successful in 3m29s
PR Checks / build-test (pull_request) Successful in 4m38s
Required for -m 'not integration' to actually deselect them (pytest.ini
addopts) and for 'pytest -m integration' in the nightly CI job.
2026-10-09 00:20:35 +00:00
OpenCode Cabillot de27820cc7 ci: run pytest in all workflows — real unit job + Qdrant-backed integration job
- pr.yaml: new pytest job (unit tests only, integration deselected by marker)
- main.yaml / cron.yaml / tag.yaml: replace the build-only 'test' job with a
  real pytest unit job + an integration-test job that starts a Qdrant
  container sharing the job container's network namespace
  (--network container:$(hostname) — bypasses the Gitea runner bug with
  service containers), waits for /healthz, runs 'pytest -m integration',
  then tears down.
- build/build-push jobs now require [test, integration-test]; previously
  'test' was only a docker build and pytest never ran in CI.
- integration-test first cleans up any stale qdrant container (rerun-safe).
- setup-python SHA aligned with docker-build.yaml (v7, python 3.13/3.14).
2026-10-09 00:18:25 +00:00
OpenCode Cabillot b9e22766c0 test: cover build_filter (participant should-clause, date ranges, combination) 2026-10-09 00:16:58 +00:00
OpenCode Cabillot e32806aab9 test: add indexer unit tests + integration marker; make indexer importable without env
- pytest.ini: 'integration' marker, deselected by default; the integration
  suite requires a live Qdrant and will only run in the nightly CI job.
- src/indexer.py: move env validation from import time into _validate_config()
  called by main() — the module can now be imported without MAILDIR_PATH /
  QDRANT_URL / COLLECTION_NAME set, enabling unit tests.
- tests/test_indexer.py: 27 new unit tests, no network and no model:
  decode_mime_words (encoded-words utf-8/iso-8859-1, mixed), extract_text_from_html
  (tags, scripts), normalize_email_address, parse_email_message with real
  EmailMessage objects (plain bodies, attachments detected and excluded from
  body, HTML alternative, unknown charset fallback via raw bytes message,
  encoded attachment filename), get_recent_keys against a real tmp_path
  Maildir (fresh mtime selected, old mtime excluded, colon-suffix keys).
  mailbox.Maildir(create=True) does not create cur/new/tmp on Python 3.11 —
  the test helper pre-creates them.
2026-10-09 00:16:10 +00:00
OpenCode Cabillot c77d8b4fe6 chore: remove legacy GitLab CI and Jenkins files
PR Checks / hadolint (pull_request) Successful in 15s
Docker Build and Push / test (pull_request) Successful in 5m0s
PR Checks / build-test (pull_request) Successful in 3m59s
Docker Build and Push / integration-test (pull_request) Successful in 5m16s
Docker Build and Push / build (pull_request) Successful in 10m15s
2026-09-02 13:46:30 +00:00