The missing tool to extract reports about projects you build on Bitrise
Project description
Bitrise Reports
What
A simple cruncher for numbers derived from builds you run on Bitrise CI. Useful if you are in charge of managing infrastructure capacity related to Bitrise, like detecting/reporting anomalies, evaluating queues impact and so on.
Main features:
- Backed by Bitrise REST API under the hood
- Can compute timing (queued, running and total execution time) for all builds in the given time window
- Can compute build statuses (success, failure or aborted) for all builds in the given time window
- Results can be filtered by Git branch (eg master or main)
- Result are detailed per machine type and also per Workflow
- Supports emulation of consumed Bitrise Velocity credits (for Enterprise customers)
- Report types : CLI (stdout), JSON and Excel spreadsheet
Installing
This tool requires Python, supporting versions 3.8.x and 3.9.x.
Install bitrise-reports
with pip
$> pip install bitrise-reports
or with Docker
$> docker pull ghcr.io/dotanuki-labs/bitrise-reports
Using
Let's say you want analyse numbers for the project android-flagship
, learning from
builds that ran during April of 2021. You'll firstly need a
Bitrise Personal Access Token for
that. Note you must be a member in the project you want to analyse.
By running
$> bitrise-reports \
--token=$BITRISE_PAT_TOKEN \
--app=android-flagship \
--starting=2021-04-01 \
--ending=2021-04-30
you should get something like that on your CLI
which is a simple overview of what happened.
Let's say now that you want to learn about how much time you are spending with queued builds.
You can run then
$> bitrise-reports \
--token=$BITRISE_PAT_TOKEN \
--app=android-flagship \
--starting=2021-04-01 \
--ending=2021-04-30 \
--detailed-timing
and get a report like this one
Last but not least, suppose you want to learn about execution status for all your Workflows that you run for events in your master
branch (eg, push or a scheduled build).
You can run
$> bitrise-reports \
--token=$BITRISE_PAT_TOKEN \
--app=android-flagship \
--starting=2021-04-01 \
--ending=2021-04-30 \
--target-branch=master \
--detailed-builds
and get a report like about that too
Command line interface
The complete list of CLI options:
Option | Details | Required |
---|---|---|
token | Personal access token for Bitrise API | Yes |
app | The title of your app in Bitrise | Yes |
starting | Starting date in the target time frame | Yes |
ending | Ending date in the target time frame | Yes |
detailed-builds | Details all statuses (success, failure and abortion) for builds | No |
detailed-timing | Details timing (queued, running, total execution) for builds | No |
emulate-velocity | Estimate Bitrise Velocity credits consumed | No |
target-branch | Filters build by Git branch | No |
report-style | The style of report you want | No |
where
starting
andending
follow YYYY-MM-DD conventionreport-style
accepts stdout (default), json or exceldetailed-timing
is a CLI flagdetailed-builds
is a CLI flagemulate-velocity
is a CLI flag
If you opt-in for a specific report style, the corresponding file - bitrise-metrics.json or bitrise-metrics.xlsx - will be written in the same folder you are runnint bitrise-reports
.
Running with Docker
Given the current definition for the Container Image, all the previous examples are straitghtforward to run on top of Docker:
$> docker run --rm dotanuki-labs/bitrise-reports \
--token=$BITRISE_PAT_TOKEN \
--app=android-flagship \
--starting=2021-04-01 \
--ending=2021-04-30 \
--detailed-builds
When exporting reports (JSON or Excel) you should mount you current path upon Container's workdir
$> docker run --rm "${PWD}:/reports" dotanuki-labs/bitrise-reports \
--token=$BITRISE_PAT_TOKEN \
--app=android-flagship \
--starting=2021-04-01 \
--ending=2021-04-30 \
--report-style=excel
Contributing
If you want to contribute with this project
- Check the contribution guidelines
- Ensure you have Python 3.8.+ installed. I recommend Pyenv for that.
- Ensure you have Poetry installed
- Prepare your environment
$> make setup
- Code you changes
- Make sure you have a green build
$> make inspect test
- Submit your PR 🔥
Author
- Coded by Ubiratan Soares (follow me on Twitter)
License
The MIT License (MIT)
Copyright (c) 2021 Dotanuki Labs
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for bitrise_reports-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4106cf3766f55e2556d5464d5d260ced1f859292267af9bac5855acdf4d8663 |
|
MD5 | 4ca1b8df30539e883cd2c177f8d60606 |
|
BLAKE2b-256 | 5f00e84436a572dc18a5e1e1342951eb2fb2225977940e8d48df12bbf91089f4 |