• Stars
    star
    108
  • Rank 321,259 (Top 7 %)
  • Language
    Clojure
  • License
    BSD 2-Clause "Sim...
  • Created over 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Transparency for your build pipeline's results and runtime

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/

Screenshot

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

FAQ

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.

More Repositories

1

rasterizeHTML.js

Renders HTML into the browser's canvas
JavaScript
2,451
star
2

csscritic

Lightweight CSS regression testing
JavaScript
481
star
3

cjklib

Han character library for CJKV languages
Python
147
star
4

json-path-comparison

Comparison of the different implementations of JSONPath and language agnostic test suite.
Shell
84
star
5

xmlserializer

xmlserializer serializes a DOM subtree or DOM document into XML/XHTML
JavaScript
36
star
6

upsidedown

Simple Python module that "flips" latin characters in a string to create an "upside-down" impression
Python
27
star
7

ayepromise

A teeny-tiny promise library
JavaScript
27
star
8

pdfserver

Pdfserver is a webservice that offers common PDF operations like joining documents, selecting pages or "n pages on one".
Python
17
star
9

jquery-shiftenter

Submit your textarea through a simple press on 'Enter' with jQuery
JavaScript
14
star
10

inlineresources

Inlines style sheets, images, fonts and scripts in HTML documents.
JavaScript
13
star
11

build-facts

Dump your build pipeline's data for inspection
Clojure
13
star
12

jp

A simpler jq, and with JSONPath
Shell
11
star
13

surf

Old Git fork of the SuRF Object RDF Mapper
Python
10
star
14

greenyet

Microservices status dashboard
Clojure
10
star
15

csscritic-examples

Helping you set up CSS Critic with your project
JavaScript
9
star
16

css-font-face-src

A CSS @font-face src property value parser
TypeScript
8
star
17

eclectus

Han character dictionary
Python
7
star
18

hwr

Clone of Tegaki project
Python
6
star
19

tegaki

Chinese and Japanese Handwriting Recognition
Python
6
star
20

deniz

A simple web app for browsing RDF data
JavaScript
6
star
21

sparqlprotocolproxy

Small SPARQL protocol proxy server
Python
4
star
22

tinycors

A dead simple CORS proxy
JavaScript
2
star
23

django-wikify

django-wikify is a lightweight module to turn your static Django model views into full wiki pages.
Python
2
star
24

slow-promise

Slow down your promises
JavaScript
2
star
25

basic-auth-proxy

A tiny proxy forcing basic-auth
JavaScript
1
star
26

html2xhtml.js

HTML to XHTML converter
JavaScript
1
star