A tool to provide the ability to generate automated DORA and delivery metrics for your every release.
We’re always looking for people who value their work, so come and join us. We are hiring!
- This repository demonstrates the power of automation in generating DORA and delivery metrics for your software releases. By utilizing the provided scripts and tools
- You can streamline the process of calculating and recording metrics for your projects.
- Once the metrics are generated, you can seamlessly push them to 📣 Compass to keep track 📝 of your custom metrics effortlessly by following our instructions.
- We have hosted a docker image here
Including this in your CI pipeline will automatically uncover detailed insights about your releases, and delivery efficiency. The following metrics will be automatically calculated per release
- total number of releases - feature, bugfix, and hotfix release breakdown
- average features, bugs & hotfixes per release
- Hotfixes per release
- Bugs per feature
- Bug release ratio
- ➕ Generate metrics for recent release
docker run --rm
-v "$(pwd)/metrics":/app/metrics
<!-- attach metrics dir of container host as an output dir -->
-v "$(pwd)/.git":/app/.git
<!-- attach .git dir of the container host -->
abhimishraa/dorametrics:latest --calculate-metrics
<!-- must be used without -e flag -->
- ➕ Generate metrics for your previous releases / pre-existing repository
Considering your repository had followed strict git flow as stated here
docker run --rm
-v "$(pwd)/metrics":/app/metrics
<!-- attach metrics dir of container host as an output dir -->
-v "$(pwd)/.git":/app/.git
<!-- attach .git dir of the container host -->
abhimishraa/dorametrics:latest --calculate-metrics -e True
- If your parent / production branch is not
main
, specify it manually :-
docker run --rm -v $(pwd)/metrics:/app/metrics abhimishraa/dorametrics:latest --calculate-metrics -p <branch-name>
- 📣 To notify Jira Compass with the generated metrics:
docker run --rm \
-e COMPASS_USER_EMAIL=$COMPASS_USER_EMAIL \
-e COMPASS_USER_API_KEY=$COMPASS_USER_API_KEY \
-e COMPASS_METRICS_BASE_URL=$COMPASS_METRICS_BASE_URL \
-v $(pwd):/app abhimishraa/dorametrics:latest \
--notify-compass "metrics/data.yaml" "metrics/target-metrics.yaml"
- For getting help from the metrics tool:-
docker run --rm abhimishraa/dorametrics:latest --calculate-metrics --help
- For more, please check out our detailed documentation to understand in depth concepts.
Sample CI Pipeline to integrate into your production release workflow can be found here
The target-metrics.yaml file defines the metrics you want to calculate and track. Customize the metrics and their associated IDs according to your project's needs.
The structure should be similar to what we have here
- The branch name must correspond to the ticket number such as
<type-of-ticket>/<Proj>-<TickNumber>
- For example:-
`feat/<PROJ>-1`
`chore/<PROJ>-6`
`docs/<PROJ>-7`
`bug/<PROJ>-2`
`fix/<PROJ>-5`
`bugfix/<PROJ>-2`
`hotfix/<PROJ>-3`
- Running this tool to an existing git repository
(-e True flag)
will list down all the merges done into yourmain
branch and the count of it will be considered as the total number of releases which we can see in thetotal_releases
section of the file itself.
- Running this tool to an existing git repository
(-e True flag)
the time when you execute the --calculate-metrics command marks the initiation of the first release in this sequence. - Note 🛑:- although we do get the
total_releases
indata.yaml
, the tool does not has the ability to list break down every release (merge intomain
) branch and hence the release number in the list order will start from1
- Important Note 🛑: Although there are some limitations while integrating this to an existing git repository as this tool was built with the focus of calculating the metrics for
next release cycles
that come into agit branch (main)
, but it's crucial to recognize that correct metrics will be generated for all subsequent releases. The tool will seamlessly calculate and provide accurate metrics for your future releases. It's a powerful step toward enhancing your project's insights and tracking its progress effectively. Happy measuring! 📊🚀