mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-04 08:09:27 +00:00
## Summary
Adds a standalone workflow that runs the 672-query SQL regression suite
on-demand against a live OpenObserve instance. Triggered by
`/query-agent` PR comment or manual `workflow_dispatch`.
## How it works
```
/query-agent PR comment (or manual dispatch)
│
├── Job 1: Triage
│ - Allowlist gate (same engineering team list as council)
│ - Resolve PR number from comment or dispatch input
│ - Fetch PR diff, grep for query-engine paths
│ - Post decision comment (skip/run/dry-run)
│
└── Job 2: Run tests (if not skipped + not dry-run)
- Build OO debug binary (nightly-2026-05-20, mimalloc)
- Setup Python 3.11 + rye
- Run compute_counts.py to regenerate expected values
- Start OO server with ZO_MAX_FILE_RETENTION_TIME=1
- Run pytest tests/query_agent/ (excluding test_3_vortex.py)
- Post pass/fail comment on PR
```
## Details
- **Trigger**: Exact `/query-agent` comment on a PR (not `contains`), or
manual dispatch with `pr_number`
- **Runner**: `ubicloud-standard-4` (matches api-testing.yml)
- **Timeout**: triage 10 min, tests 60 min
- **Concurrency**: one run per PR, cancel-in-progress
- **Artifacts**: server logs + pytest logs uploaded on failure, JUnit
XML always
## Test plan
- [ ] Merge to main first (required for comment triggers to take effect)
- [ ] Comment `/query-agent` on a PR with query-engine changes →
workflow runs
- [ ] Comment `/query-agent` on a PR with docs-only changes → triage
skips
- [ ] Non-allowlist user comments `/query-agent` → no reaction
- [ ] Manual dispatch with `dry_run=true` → triage only, no tests
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>