Skip to content

Add release end-to-end smoke test workflow - #551

Draft
reitblatt wants to merge 1 commit into
mainfrom
reitblatt/release-e2e-smoke
Draft

reitblatt wants to merge 1 commit into
mainfrom
reitblatt/release-e2e-smoke

Conversation

@reitblatt

@reitblatt reitblatt commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Adds an end-to-end smoke test of the demo stack, required green on the release commit (ROOST practices: E2E for major/minor releases).

  • e2e-smoke.sh: brings up the compose stack (worker, UI API, Kafka, Druid, MinIO, Postgres; not the UI frontend), renders one event from example_data/template.json with text "hello", produces it to Kafka, then asserts over HTTP (POST /events/scan on the UI API) that ContainsHello is true, the BanUser verdict is present, and the User/meow label mutation is present. Waits are bounded polls on readiness/ingestion (no fixed sleeps or retries of the assertions).
  • .github/workflows/e2e.yml: runs on pull_request (path-filtered to app code via dorny/paths-filter, as in Coop's e2e.yaml), release: published, and workflow_dispatch. Uploads docker compose logs as an artifact on failure. Release and manual runs skip the path filter.
  • docs/development/releases.md: new checklist item "E2E Smoke Test workflow is green on the release commit".
  • AGENTS.md: how to run it locally.

Negative test (not committed)

Locally changed example_rules/rules/post_contains_hello.sml to phrase='goodbye', restarted osprey-worker and osprey-ui-api, and ran E2E_SKIP_UP=1 ./e2e-smoke.sh. The event was ingested and queryable, but the script failed on the ContainsHello assertion and printed the event's features (no ContainsHello, no ban/label). Reverted the rule afterward. Not run on CI.

Agent report

  • Package: O3 — Release end-to-end smoke test (P0)
  • Gap re-verified: yes, on main at 0509c5e: no e2e workflow; releases.md only required "CI is passing".
  • Issue: none. No existing issue covers this (Design (expanded/desired) integration tests #304 is related, a design issue for expanded integration tests). I was told not to create issues; follow-up item below.
  • Draft PR: Add release end-to-end smoke test workflow #551
  • Check results: E2E Smoke Test passed on the PR branch in ~3 min on a GitHub runner (first CI run; no flakiness observed, but one sample). Also green: Code Quality Checks, Integration Tests, GitHub Actions security analysis (zizmor), Discord Bot. Locally: passed against a stack; negative test failed as expected (see above). pre-commit on changed files passed.
  • Unverified: release: published and workflow_dispatch triggers (only the pull_request path ran); the failure-log artifact upload (the workflow never failed on CI); the negative test on CI; flakiness over repeated runs; Druid startup time on a slower runner (timeouts are 300s readiness / 180s query). The path filter negative case (a PR touching only docs skips the job) was not exercised.
  • Human-approval items: none of the restricted files were modified (no compose, start.sh, Dockerfiles, release/deploy workflows). No new dependencies; new workflow reuses already-pinned action SHAs (checkout, setup-buildx, upload-artifact) plus dorny/paths-filter v4.0.3 at the SHA Coop uses, which is a new action for this repo and should be approved. If a ruleset requires specific status checks, adding E2E Smoke Test as required (it is path-filtered, so skipped runs would need handling) is a repo-settings decision, which I did not touch.
  • Open questions / follow-ups: (1) Create a tracking issue for this package (not done, per instruction). (2) Should the release process require the check to be green for patch releases too? The checklist item currently applies to all, with the note in the doc that it's required for major/minor. (3) The workflow uses the dev compose ports (127.0.0.1:5004, 8081), so it can't coexist with a running dev stack locally; documented in AGENTS.md. (4) The doc link in releases.md assumes the workflow file name e2e.yml.

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant