A dynamic build badge server that uses the Buildkite Builds API and shields.io to turn any of your build meta-data values into a readme badge. Embed your code coverage, build timings, latest commit running on production, or anything you like!
For example, say you had the following code snippet somewhere in your my-org/my-pipeline
build pipeline:
buildkite-agent meta-data set coverage '95%'
To show the value from the last passing master build, you’d:
<img src="https://my-app.heroku.com/my-org/my-pipeline/coverage?label=Coverage" alt="Coverage">
which would look like:
Available parameters:
branch
- the branch to find the latest build from. Default ismaster
.state
- the required state of the latest build on the branch. Default ispassed
.label
- the label for the badge. Default is meta-data key name.color
- any valid SVG named color or hex value (e.g.red
orff0033
). Default isgreen
.style
- shields.io style (e.g.flat-square
)logo
- shields.io logo (e.g.data:image/png;base64,…
)logoWidth
- shields.io logoWidth (e.g.40
)
-
Create an API token
Create a Buildkite API Token withread_builds
access so it can fetch the latest build and grab its meta-data. Copy the API key and paste it into the next step… -
Embeddinate your badges 🎉
You can also run this via Docker using buildkite/dynamic-build-badges
:
docker run -p 8080:8080 -e BUILDKITE_API_KEY=xyz buildkite/dynamic-build-badges
- Ability to specify a
range
parameter, and have the color change from red → green depending on the value - Speed up badge display by removing 302 and serving it directly with shields
git clone
env BUILDKITE_API_KEY=xxx npm run web
Pull requests welcome!
See the License file for license rights and limitations (MIT).