Skip to content

Add job callback steps to the runner smoke test - #1065

Draft
epompeii wants to merge 1 commit into
u/ep/callback/docsfrom
u/ep/callback/smoke
Draft

epompeii wants to merge 1 commit into
u/ep/callback/docsfrom
u/ep/callback/smoke

Conversation

@epompeii

@epompeii epompeii commented Sep 26, 2026 •

Copy link
Copy Markdown
Member

The runner smoke test now sends a real callback, through the real sender and the real address policy, with no policy relaxed.

  • Skipped, on every smoke run. On an organization without a plan, a detached bencher run --image ... --callback-url prints callback skipped: requires a Bencher Plus plan, and once the job finishes its callback reads skipped with no status.
  • Settled, on smoke ci. The smoke organization gets an Enterprise license signed in process with the committed test key, which only a debug build trusts, and the license is removed afterwards. A detached run with one harmless header sends its callback to GitHub's repository_dispatch endpoint without a token. The step waits for the callback to settle and asserts failed with a 4xx: GitHub answers 401, or 403 or 429 under its rate limit for shared runner addresses. That one assertion covers the seal, the claim, the default report body, the address policy, DNS, TLS, the attempt record, and the settle.
  • Why GitHub. A receiver on the dev API would make every pull request's smoke test depend on the dev deployment, and a broken dev would then block the deploy that repairs it.
  • Why not smoke dev. A release build trusts only the live license key, and dev has no paid plan without Stripe, so dev runs only the skipped step.

The printout check on stdout runs only in a release build, since a debug build prints the callback in full. Every failure message carries the job's callback state, because CI discards the API's database with the run.

Needed for #1046

@epompeii
epompeii added this pull request to stack #1054 September 26, 2026 02:44
@epompeii
epompeii marked this pull request as ready for review September 26, 2026 03:16
@github-actions

Copy link
Copy Markdown
Contributor

🐰 Bencher Report

ProjectBencher
Branchu/ep/callback/smoke
Testbedintel-v1

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
BenchmarkLatencymicroseconds (µs)
Adapter::Json📈 view plot
⚠️ NO THRESHOLD
5.16 µs
Adapter::Magic (JSON)📈 view plot
⚠️ NO THRESHOLD
4.99 µs
Adapter::Magic (Rust)📈 view plot
⚠️ NO THRESHOLD
27.54 µs
Adapter::Rust📈 view plot
⚠️ NO THRESHOLD
4.70 µs
Adapter::RustBench📈 view plot
⚠️ NO THRESHOLD
4.65 µs
🐰 View full continuous benchmarking report in Bencher

@epompeii
epompeii marked this pull request as draft September 26, 2026 03:30
@epompeii
epompeii marked this pull request as ready for review September 26, 2026 04:19
@epompeii
epompeii marked this pull request as draft September 26, 2026 04:27
The runner smoke test now submits two detached jobs with a callback. On an
organization without a plan, the CLI prints the skip notice and the processed
job shows the callback skipped. On a self-hosted server, the organization is
then licensed at Enterprise with the committed test key, and a callback to
the GitHub repository_dispatch endpoint without a token settles failed with
the 4xx GitHub answers. That covers the real send path against a public https
receiver: seal, claim, the report body, address policy, DNS, TLS, and the
recorded attempt. The license is removed afterwards.

Bencher Cloud gives a paid plan only through Stripe, so the dev smoke test
runs the skipped step only.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant