BuildButler

Jenkins Cloud

Hosted Jenkins plugin that sends CI data to the BuildButler backend for storage and analytics, viewed in the BuildButler web app.

The Jenkins Cloud plugin sends build, test, stage, and agent data to the BuildButler hosted backend. Data is stored in an isolated database per organization (for paid plans) and viewed in the BuildButler web app at app.buildbutler.dev.

BuildButler Cloud dashboard

How it works

┌──────────────────────┐         ┌───────────────────────────────────────────┐
│  Your Infrastructure │         │           BuildButler Cloud               │
│                      │  HTTPS  │                                           │
│  ┌────────────────┐  │────────▶│  ┌──────────┐   ┌─────────────────────┐  │
│  │    Jenkins     │  │         │  │ REST APIs│──▶│  Isolated Postgres  │  │
│  │  (+ plugin)    │  │         │  └──────────┘   │  + Object Storage   │  │
│  └────────────────┘  │         │                 └─────────────────────┘  │
└──────────────────────┘         │                          │               │
                                 │           ┌──────────────▼─────────────┐ │
                                 │           │  BuildButler Web App        │ │
                                 │           │  app.buildbutler.dev        │ │
                                 │           └────────────────────────────┘ │
                                 └───────────────────────────────────────────┘

Each organization gets its own isolated database (paid plans) — your data is never adjacent to another customer's data. During the trial/free period, user data resides on a shared database and partitioned using membership and organizational rules and boundaries.

Prerequisites

  • Jenkins 2.387.3 or later
  • Outbound HTTPS access from Jenkins to api.buildbutler.dev
  • A BuildButler account at app.buildbutler.dev
  • Java 11+

Installation

  1. Download the buildbutler-cloud.hpi plugin from the Downloads page.
  2. In Jenkins, go to Manage Jenkins → Plugins → Advanced.
  3. Under Deploy Plugin, upload the .hpi file and click Deploy.
  4. Restart Jenkins when prompted.

Configuration

Step 1 — Generate an API key

In the BuildButler web app, go to Settings → Add API key. Copy it — you'll need it in the next step.

Multiple Jenkins servers: If you want to collect data from multiple Jenkins servers, use the same API key on each and specify a unique server label in the Jenkins plugin configuration to distinguish them.

Create API Key

Step 2 — Configure the plugin in Jenkins

Go to Manage Jenkins → BuildButler Cloud and fill in:

BuildButler Cloud plugin configuration

Click Test Connection to verify the plugin can reach the BuildButler API, then Save.

Step 3 — Verify data is flowing

Trigger a build in Jenkins. Within a few seconds it should appear in the Build Results page in the BuildButler web app.

Data ingested

The plugin hooks into the Jenkins build lifecycle and sends:

DataWhen
Build result, status, duration, branchOn build completion
Pipeline stage execution timesOn pipeline completion
Test results (JUnit/TestNG/etc.)On build completion
Agent status and availabilityPeriodically (every 60s)
Build console logsOn build completion

Storage

Data is stored in:

  • PostgreSQL — build metadata, test results, pipeline stages, agent events
  • Object storage (S3-compatible) — raw build console logs

All data is encrypted at rest and in transit. Each organization's database is fully isolated.

Multiple Jenkins controllers

Connect as many Jenkins controllers as you like. Each Jenkins BuildButler Cloud configuration should use the same API key (generated in step 1) and a key name that identifies the Jenkins server (e.g. prd-jenkins).

Network requirements

Your Jenkins instance needs outbound HTTPS access to:

  • api.buildbutler.dev — build data ingestion

If Jenkins is behind a proxy, set the proxy in Manage Jenkins → Proxy Configuration.

Compatibility matrix

Jenkins LTSReleasedJava Requiredbuildbutler-cloudbuildbutler-local
2.387.xMar 2023Java 11❌ too old❌ too old
2.401.xMay 2023Java 11–17❌ too old❌ too old
2.414.xAug 2023Java 11–17❌ too old❌ too old
2.426.xNov 2023Java 11–17❌ too old❌ too old
2.440.3Feb 2024Java 17✅ minimum✅ minimum
2.452.xMay 2024Java 17
2.462.xAug 2024Java 17
2.479.xNov 2024Java 17
2.492.xFeb 2025Java 17

SMTP Configuration

By default, Jenkins Cloud uses the BuildButler API for email notifications. You can override the BuildButler SMTP server with your own by going to Manage Jenkins → BuildButler Email Notifications.

BuildButler Email Notifications SMTP configuration

Troubleshooting

SymptomLikely causeFix
401 UnauthorizedInvalid or expired API keyRegenerate the key in Settings → Connections
Connection timeoutFirewall blocking outbound HTTPSAllow egress to *.buildbutler.dev on port 443
Builds not appearingPlugin not transmittingCheck Jenkins system log for BuildButler errors. Add logger: io.jenkins.plugins.analytics
Logs missingObject storage unreachableEnsure logs.buildbutler.dev is accessible

On this page