Skip to main content
When CI runs an Experiment, the process exit status decides whether the gate passes. --json provides feedback from the current process; its final receipt contains the Invocation’s runIds. A JUnit file gives the CI platform test results to display.

Basic command

This command has three outputs:
  • Exit status: CI uses it to pass or fail the job.
  • NDJSON: Progress and diagnostics describe the current process; the final receipt describes the Invocation.
  • JUnit: A temporary file for the CI platform.
JUnit and external-platform files do not own the Record. The quiescent Record’s named channels keep the recorded Verdict, Usage, assertions, and diagnostics.

GitHub Actions example

This step retains JSON output and correctly preserves the exit status from niceeval exp:
Inject model credentials through CI secrets. Do not put credentials in an Experiment, receipt, JUnit file, or log.

Use the receipt in a later step

After an Invocation is created successfully, the final NDJSON record contains its receipt. A later script can use its runIds to select an explicit Run for viewing or export:
If an input error ends the command before an Invocation exists, there is no receipt. Correct the command, Experiment, or selection condition instead of guessing a Run ID.

Keep feedback readable

CI logs are for the current process’s progress and diagnostics. To inspect business results, use the receipt’s runIds with show or view. To share results over time, use view --out to produce a static report site. See Publish a Static Report for the full static-site workflow.