buildviz
Transparency for your build pipeline's results and runtime.
The most important things cannot be measured.
Your build pipeline can.
- Anonymous
The What
Buildviz provides graphs detailing runtime behaviour, failures and stability of the pipeline, answering a multitude of questions in the hopes of improving your pipeline.
All it needs is your build history including test results.
Live example: https://buildviz.cburgmer.space/
Usage
$ curl -OL https://github.com/cburgmer/buildviz/releases/download/0.15.1/buildviz-0.15.1-standalone.jar
$ java -jar buildviz-0.15.1-standalone.jar
Now, buildviz takes in build data via POST
to /builds
. Some suggestions how
to set it up:
Sync from supported build servers
Buildviz understands build data extracted by build-facts. Currently the following CI/CD systems are supported:
- Concourse
- GoCD
- Jenkins
- TeamCity
Example:
# After starting up Buildviz locally, do:
$ curl -LO https://github.com/cburgmer/build-facts/releases/download/0.5.4/build-facts-0.5.4-standalone.jar
$ java -jar build-facts-0.5.4-standalone.jar jenkins http://localhost:8080 --state state.json \
| curl -v -H "Content-type: text/plain" -d@- 'http://localhost:3000/builds'
DIY
You can also roll your own. For every build POST
JSON data to http://localhost:3000/builds/
,
for example:
{
"jobName": "my job",
"buildId": "42"
"start": 1451449853542,
"end": 1451449870555,
"outcome": "pass",
"inputs": [{
"revision": "1eadcdd4d35f9a",
"sourceId": "[email protected]:cburgmer/buildviz.git"
}],
"triggeredBy": [{
"jobName": "Test",
"buildId": "42"
}],
"testResults": [{
"name": "Test Suite",
"children": [{
"classname": "some.class",
"name": "A Test",
"runtime": 2,
"status": "pass"
}]
}]
}
The build's jobName
, buildId
, and start
are required, all other values are
optional. Buildviz follows this JSON schema.
JUnit XML (or JSON)
formatted test results can be PUT
to http://localhost:3000/builds/$JOB_NAME/$BUILD_ID/testresults
More
You might also like:
- Polaris, automated tracking of engineering excellence fitness metrics.
- Metrik, calculates the four key metrics based on CI/CD build data.
- Four Keys, measures the four key metrics.
- HeartBeat, calculates delivery metrics from CI/CD build data, revision control and project planning tools.
- Kuona project for IT Analytics, provides a dashboard on data from various sources.
- Test Trend Analyzer, consumes test results for test trends.
- TRT, consumes test results for test trends.
- GoCD's analytics extension, collects and displays build metrics for GoCD.
- pulse, support the continuous improvement of your engineering teams with data-driven insights.
- Jellyfish, translate and maximize the business impact of engineering.
- BuildPulse, automatically detects flaky tests.
Reach out to @cburgmer for feedback and ideas.