bitrise-io/bitrise

Name: bitrise

Owner: Bitrise

Description: Bitrise runner CLI - run your automations on your Mac or Linux machine -

Created: 2015-06-27 06:50:32.0

Updated: 2018-03-29 20:28:02.0

Pushed: 2018-03-30 12:41:21.0

Homepage: https://www.bitrise.io/cli

Size: 6858

Language: Go

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Bitrise (offline) CLI

Discussion forum: https://discuss.bitrise.io/

Run your Bitrise automations with this CLI tool on any Mac or Linux machine, and use the same configuration on bitrise.io (automation service, with a mobile app focus).

Part of the Bitrise Continuous Integration, Delivery and Automations Stack, with stepman and envman.

For a nice & quick intro you should check: https://www.bitrise.io/cli

Install and Setup

The installation is quick and easy, check the latest release for instructions at: https://github.com/bitrise-io/bitrise/releases

Installing with Homebrew:

brew update && brew install bitrise

Optionally, you can call bitrise setup to verify that everything what's required for bitrise to run is installed and available, but if you forget to do this it'll be performed the first time you call bitrise run.

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

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.

This is still work-in-progress, we're working on providing the --format param to every command except run.

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.

Documentation

We added some documents to make it a bit easier to get started with Bitrise CLI. The documentation includes a quick and a little longer guides for CLI, a React Native project workflow guide and an overview of the Step share process. You can find them in the _docs folder.

Development
Guidelines
Updating dependencies

To do a full dependency update use bitrise-tools/gows, for a clean workspace:

 clear && gows bitrise run dep-update

to test that all dependency is included:

 clear && gows go test ./... && gows go install && gows bitrise run test

and/or with docker-compose:

er-compose build && docker-compose run --rm app go test ./...
Release a new version
  1. Update go dependencies (bitrise run dep-update)

  2. PR & merge these changes to the master branch

  3. Release a new versions of bitrise-tools (stepman, envman) [if no changes applied since the previous release, update the go dependencies and release a new version], you can find the dependent tools in ./bitrise/setup.go -> minEnvmanVersion, minStepmanVersion

  4. Release a new versions of default plugins if there are changes, you can find the default plugins in ./bitrise/setup.go -> PluginDependencyMap

  5. Bump bitrise-tools and default plugins versions in ./bitrise/setup.go

  6. PR & merge these changes to the master branch

  7. Bump RELEASE_VERSION (minor, e.g. 1.9.0 -> 1.10.0) in bitrise.yml

  8. Commit (do not push) these changes to the master branch

  9. Run bitrise-run create-release

  10. Fill the current version's Release Notes section in CHANGELOG.md

  11. Update version integration test in ./_tests/integration/version_test.go

  12. Push the changes to the master

  13. Open the project's bitrise app on bitrise.io, find the triggered create-release workflow run's build

  14. Download and test the generated bitrise binaries (version --full and plugins)

  15. Create the new version's release on github:

  16. Fill Tag and Version inputs

  17. Copy paste the Changelog's Release Notes and Install or upgrade sections to the release description on github

  18. Attach the generated (on bitrise.io) linux and darwin binaries to the release

  19. Push the Publish release button on github


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.