Commit Graph

7 Commits

Author SHA1 Message Date
Claude BM
ab89dc05b2 Generate HTML failure report and attach to Telegram on CI fail
When tests fail, ci-runner.sh generates an HTML report with:
- Build metadata (branch, commit, actor, duration)
- Test stats (passed/failed/skipped/errors)
- Failed test table (file + test name)
- Failure detail output

ci-notify.sh sends the HTML as a document attachment alongside
the text notification in the CICD Pipeline topic.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 18:33:38 +00:00
Claude BM
cfaf67c4c6 Bind webhook server to 0.0.0.0 instead of 127.0.0.1
Required for Gitea webhook delivery via the server's public IP.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 16:47:25 +00:00
Claude BM
ec02b57adc Add global lock to serialize CI runs across branches
Multiple simultaneous test runs compete for PostgreSQL connections,
causing spurious errors. Global flock ensures one branch runs at a time.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 09:20:11 +00:00
Claude BM
b8c4fe7cc2 Fail CI when 0 tests run — 0/0/0 is never a pass
If pytest reports 0 passed, 0 failed, 0 skipped, treat it as a
failure. Something is wrong if no tests ran at all.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 07:17:12 +00:00
Claude BM
0772d24cab Fix pytest-timeout detection and catch collection errors
--timeout flag caused pytest to fail silently on branches without
pytest-timeout installed. Now checks for the package first. Also
detects when pytest exits non-zero with 0 results (collection error)
and properly reports it as a failure.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 07:13:15 +00:00
Claude BM
11b11ea8de feat: tag @TSHARPSbm_bot in all CI notifications so Claude sees results 2026-04-21 05:18:26 +00:00
Claude BM
9b7abec506 feat: TSHARPS-CI external runner — branch-independent CI pipeline
Complete CI system that lives outside TSHARPS branches:
- ci-webhook.py: HTTP server on port 9500, receives Gitea push webhooks
- ci-runner.sh: runs feature manifests, pytest, package checks (read-only)
- ci-notify.sh: sends results to Telegram CICD Pipeline topic (4706)
- ci-config.json: branch→worktree mapping, tokens, timeouts
- README.md: branch model, promotion workflow, switch-back plan

Same tests for ALL branches. No drift. Runner self-monitors for crashes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 03:25:31 +00:00