Skip to content

fabjan/buildogram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Buildogram

latest release

Shows stats for your CI pipelines.

See build times or test results over time. Like so:

Build history

Inspired by the simplicity of the great CI-BuildStats.

Quick start

gleam test  # Run the tests
gleam run   # Run the project
gleam shell # Run an Erlang shell

Oneshot buildograms

You can use the --oneshot command line flag to instead of a server just render one SVG immediately for a given repository.

$ podman run --rm ghcr.io/fabjan/buildogram:latest run --oneshot=fabjan/buildogram 2>/dev/null > test.svg

Deploying

For each release, a container image is pushed to buildogram packages.

You can run it locally with Docker:

$ docker run --rm -p3000:3000 -it ghcr.io/fabjan/buildogram:latest
[main] 🛠 HTTP cache item limit: 100
[main] ✨ Buildogram is now listening on :3000
[main] Use Ctrl+C, Ctrl+C to stop.

Try fetching the diagram from another terminal:

$ curl http://localhost:3000/bars/fabjan/buildogram
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="100" > <rect x="0" y="74" width="5" height="26" fill="red" onclick="window.open('https://github.com/fabjan/buildogram/actions/runs/3507479383', '_blank')" />
<rect x="6" y="18" width="5" height="82" fill="red" onclick="window.open('https://github.com/fabjan/buildogram/actions/runs/3508779840', '_blank')" />
<rect x="12" y="10" width="5" height="90" fill="green" onclick="window.open('https://github.com/fabjan/buildogram/actions/runs/3508826797', '_blank')" />
<rect x="18" y="17" width="5" height="83" fill="green" onclick="window.open('https://github.com/fabjan/buildogram/actions/runs/3509164502', '_blank')" />
<rect x="24" y="25" width="5" height="75" fill="green" onclick="window.open('https://github.com/fabjan/buildogram/actions/runs/3558553196', '_blank')" /> <g><line  x1="0" y1="0" x2="0" y2="100" stroke="black"/><line  x1="0" y1="10" x2="400" y2="10" stroke="black" stroke-dasharray="5,5"/><text x="1" y="12" font-size="12" font-family="sans-serif" fill="black">57s</text><text x="1" y="100" font-size="12" font-family="sans-serif" fill="black">0s</text></g> </svg>

Building

You can use the Dockerfile to build your own container image. By default it listens on port 3000.

Build with docker (takes a good while):

$ docker build -t buildogram -t buildogram:dev .
$ docker run --rm -p3000:3000 -it buildogram:dev

You can then try it out locally with curl as described above.