Skip to main content
If you prefer not to use the official GitHub Action, install Bruno CLI yourself. This is the same pattern every team copied before the official action existed: checkout, setup Node, install @usebruno/cli, run bru.

Prerequisites

  • Git installed
  • A GitHub repository containing a Bruno workspace
  • Node.js (for installing the Bruno CLI)

Demo workspace

To follow along with the video, clone the Bruno Automation Demo Workspace and open it in Bruno.

Create the workflow

  1. Create the workflow directory:
  1. Create .github/workflows/bruno-api-tests.yml:

What this workflow does

Key bru run flags

  • --global-env ci activates the ci global environment defined in environments/ci.yml at the workspace root.
  • --workspace-path ../.. tells Bruno where the workspace root is relative to the collection directory. Required when running from inside a collection folder.
  • --tags smoke,workflow,release-gate runs only requests tagged with these values.
  • --env-var overrides environment variables at runtime, useful for injecting CI-specific values like the GitHub run ID and commit SHA.
  • --reporter-html generates an HTML report of the test results.
For a full list of CLI options, see Command Options.

Run the workflow

  1. Commit and push your workflow file:
  1. Monitor the workflow:
    • Go to your GitHub repository and click the Actions tab.
    • The workflow runs automatically on pushes and pull requests to main, or trigger it manually with workflow_dispatch.
  2. View the report:
    • Once the run completes, click into the workflow run.
    • Download the bruno-report artifact from the Artifacts section.
    • Open github-actions-report.html in your browser for a visual summary of all test results.

Troubleshooting

Bruno CLI v3 changed the default sandbox to Safe Mode. If your tests rely on Node built-ins (require, Buffer, etc.), add --sandbox developer to your bru run command:
The bru process crashed before writing JUnit, or wrote an empty report. Treat as a runtime error and check the step log for stderr. When using the official action, expand the ::group:: block in the action log to see the full bru invocation, including auto-injected flags.
If the run log shows a red Install Bruno CLI step, the failure is in npm install -g @usebruno/cli, not in your collection.
See the action README for the full exit-code table.
Bruno honours HTTP_PROXY, HTTPS_PROXY, and NO_PROXY. Set them via env: on the step or runner configuration.