@usebruno/cli, runs your bru command, and exposes machine-readable test counts. PR comments, annotations, artifact upload, and soft-fail behavior are handled by standard GitHub Actions ecosystem tools documented in Pairing with downstream actions.
Official GitHub Action
The action is a composite action. It prepends
bru to your command input, auto-injects --reporter-junit when absent, parses the JUnit summary, and exposes exit-code, passed, failed, total, and duration-ms as step outputs. The workflow step fails naturally when bru exits non-zero.
Quick start
How this workflow works
A GitHub Actions workflow is a YAML file in.github/workflows/. Each line tells GitHub what to run and when. Here is what the quick start example means:
In plain terms: GitHub checks out your code, moves into your collection folder, installs Bruno CLI, runs your collection against the
prod environment, and reports pass or fail.
Inputs
CLI flags such as
--env, --env-var, --tags, --bail, --sandbox, and --reporter-* go in command, not as separate action inputs. Every CLI flag works the day it ships in the CLI.
Outputs
Available as${{ steps.<id>.outputs.<name> }} in subsequent steps:
Report file paths are intentionally not outputs. Pass an explicit
--reporter-junit <path> in command and reference that path in downstream steps.
Behavior
JUnit auto-injection (always-on). Ifcommand does not contain --reporter-junit, the action appends --reporter-junit "$RUNNER_TEMP/bruno-junit.xml" before invoking bru. A minimal command: 'run' still produces count outputs. If you pass --reporter-junit some/path.xml, the action uses your path.
Exit code propagation. The step succeeds on exit 0 and fails on non-zero. To continue the workflow past failures, use GitHub’s built-in continue-on-error: true on the step.
Versioning
The
v<major> tag is retagged automatically on every published release.
Workspace structure
The demo workspace is organized as a Bruno workspace with an OpenCollection layout:workspace.ymldefines the workspace and points to the collection atcollections/bruno-automation-demo.environments/ci.ymlis a global environment with variables likebruno_echo_url,platform_name, andbuild_id.collections/bruno-automation-demo/contains folders of requests with tests and assertions.
Run the demo with the action
build_id, commit_sha), generates an HTML report, and uploads it as an artifact.