Use case · CI/CD

Catch API regressions before they ship

Run your Bruno collections on every commit with a single command. Fail the build when a contract breaks, not after your users find it.

CI · api-tests / run
$ bru run ./collections --env ci
→ 3 suites · 61 assertions
auth 6/6
users 31/31
orders 24/24
PASS 61/61 · 3.4s · exit 0
The challenge

Manual API checks don't scale with your pipeline

Manual testing is a bottleneck

Someone has to remember to run the checks. Releases wait on it, or skip it entirely.

Bugs surface too late

A broken contract found in staging, or production, costs far more than one caught on the PR.

Hard to wire into CI

GUI-first tools resist automation. Getting them into a pipeline is its own project.

How Bruno helps

One command your pipeline already knows how to run

1

Runs anywhere a shell does

The Bruno CLI drops into GitHub Actions, GitLab CI, Jenkins, CircleCI, or any runner that can execute a command.

2

Every commit, automatically

Run whole collections on push or pull request. The same tests developers run locally, run in CI.

3

Reports for humans and machines

Generate HTML, JSON, and JUnit output, then attach it as a build artifact or feed it to your dashboards.

4

Fail fast, on purpose

A failed assertion returns a non-zero exit code, so a broken API stops the build before it reaches production.

.github/workflows/api-tests.yml

Wired into GitHub Actions in nine lines

name: API Tests
on: [push, pull_request]
 
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g @usebruno/cli
- run: bru run ./collections --env ci
What changes

Quality moves left, releases speed up

Regressions caught on the pull request

Not in staging, and not by a customer.

The same tests, everywhere

Local runs and CI runs use one set of collections from your repo.

No manual gate to forget

Testing happens on every commit, without anyone remembering to trigger it.

A record of every run

JUnit and HTML reports give you an audit trail alongside the build.

Put your API tests in the pipeline

The Bruno CLI is free and open source. Add it in one line.