This is a humble dashboard to show how often we deploy, and what the contents of those deploys are.
Install Elm 0.16 and MongoDB.
Create a JSON file called server/lib/jenkins-to-deploy.json that maps jenkins usernames to their corresponding github username.
Run this:
npm i
npm run build
npm startThis will build the front-end code (both Elm and JS), and start the server on port 2999 by default. Visit http://localhost:2999 to see the deploys.
The first time this runs, it will need to grab a bunch of builds from Jenkins. This can take a minute or two.
Also, Jenkins only exposes the last 50 builds through the api, so by default it won't start with that much data.
Config happens in server/config.js. The config pulls from environment
variables. You'll need to supply a github oauth token, a jenkins url, a jenkins
username, and a jenkins auth token. See here for how to generate an auth token for a jenkins user.
- format relative dates on deploys
- remove extra quotes on relative time formatting
- get initial current time faster so we don't have to update every second
- get current date
- get only deploys for a single day
- get all deploys for the current week
- get current week
- split up deploys by week to display a single sprint
- handle errors somewhere in the ui
- on click, expand row to fill the whole panel
- Pull title and description from commit if the deploy commit isn't a pr merge
- sort the deploys by time
- add an endpoint to get stats for past weeks
- use an actual db ya mook (but still use a seed file of some kind i guess)
- use real config instead of hard-coded tokens that i have to expire now
- rotate keys
- only show successful deploys
- make jenkins url configurable
- why do the commits not show up?
- make deploy expand and collapse
- format expanded deploy correctly
- make commits expand and collapse
- add commit user
- implement stats endpoint
- grab graph data from server instead of hardcoding
- hook grabbing graph data up to elm
- style graph
- make graph a child of the div the elm app is in so it is the same width
- make tool-tip styled and labeled correctly
- add tool-tips to graph
Longer term improvements:
- Animations to things expanding and collapsing
- Pull more than the past 50 builds from jenkins
- clean up the horrible mess that is the css