MCPcopy Index your code
hub / github.com/bitrise-io/bitrise

github.com/bitrise-io/bitrise @v2.41.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.41.0 ↗ · + Follow
1,644 symbols 6,488 edges 283 files 356 documented · 22%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Bitrise CLI

Bitrise CLI is the workflow runner that powers Bitrise builds. It's the component that runs inside build machines and execute steps defined in bitrise.yml.

It's also useful as a standalone dev tool in your local environment. You can:

  • quickly validate your bitrise.yml changes before pushing a commit (bitrise validate)
  • run CI workflows locally (bitrise run workflow_name)
  • run the workflow editor in localhost and edit your configs and pipelines visually (bitrise :workflow-editor)
  • perform various other tasks (for a full list run bitrise help)

Install

Packaging status

There are multiple ways to install Bitrise CLI:

  • Homebrew: brew install bitrise
  • Nix: available as bitrise in nixpkgs, run nix-shell -p bitrise or your preferred configuration method.
  • Download a pre-built binary from the releases page
  • There might be other community-maintained packages

You can enable shell completion for the bitrise run command: https://blog.bitrise.io/workflow-id-completion

Building from source

Set up the right Go version indicated by the go.mod file, then run go install .

Documentation

CLI documentation is part of the main Bitrise docs. Relevant sections:

Tutorials and Examples

You can find examples in the _examples folder.

If you're getting started you should start with _examples/tutorials, this should guide you through the basics, while you'll already use bitrise (requires installed bitrise).

You can find a complete iOS sample project at: https://github.com/bitrise-io/sample-apps-ios-with-bitrise-yml

Tooling support & JSON output format

bitrise CLI commands support a --format=[format] parameter. This is intended mainly for tooling support, by adding --format=json you'll get a JSON formatted output on Standard Output.

Every error, warning etc. message will go to StdErr; and on the StdOut you should only get the valid JSON output.

An example calling the version command:

$ bitrise version --format=json

Will print {"version":"1.2.4"} to the Standard Output (StdOut).

Share your Step

You can use your own Step as you can see in the _examples, even if it's not yet committed into a repository, or from a repository directly.

If you would like to share your awesome Step with others you can do so by calling stepman share and then following the guide it prints.

Extension points exported contracts — how you extend this code

Ticker (Interface)
Ticker helps with mocking time.Ticker by hiding exported struct fields [3 implementers]
stepruncmd/hangdetector/ticker.go
Formatable (Interface)
Formatable ... [3 implementers]
cli/json_output.go
RegistryChecker (Interface)
RegistryChecker interface required for testing. [2 implementers]
toolprovider/mise/install_plugin.go
ToolProvider (Interface)
(no doc) [4 implementers]
toolprovider/provider/provider.go
Tracker (Interface)
(no doc) [3 implementers]
analytics/tracker.go
ConfigReader (Interface)
(no doc) [2 implementers]
configmerge/configmerge.go
Logger (Interface)
Logger ...
log/logger.go
Logger (Interface)
Logger ...
log/corelog/logger.go

Core symbols most depended-on inside this repo

Errorf
called by 733
log/logger.go
Run
called by 230
progress/spinner.go
BinPath
called by 159
integrationtests/internal/testhelpers/helpers.go
Error
called by 141
log/logger.go
String
called by 99
cli/json_output.go
Warnf
called by 73
log/log_functions.go
Print
called by 61
log/log_functions.go
Printf
called by 58
log/log_functions.go

Shape

Function 1,018
Method 412
Struct 156
TypeAlias 43
Interface 13
FuncType 2

Languages

Go100%

Modules by API surface

models/models_methods.go70 symbols
cli/run_test.go43 symbols
cli/run_util.go38 symbols
models/models.go32 symbols
analytics/tracker.go31 symbols
log/log.go27 symbols
cli/containermanager/containermanager.go27 symbols
plugins/models_methods.go25 symbols
models/trigger_map_item.go25 symbols
toolprovider/run_test.go23 symbols
models/workflow_run_plan.go23 symbols
models/selective_triggers.go20 symbols

For agents

$ claude mcp add bitrise \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page