Skip to main content

Step data in the bitrise.yml file

Abstract

The Step data and information you specify in the bitrise.yml file are the parameters of the Step you want to change, compared to the Step’s default definition.

The Step data and information you specify in the bitrise.yml file are the parameters of the Step you want to change, compared to the Step’s default definition.

To see the Step’s raw interface definition you can check it in the step library. The Step interface definitions can be found in the StepLib’s steps directory.

If you don’t specify any input or other Step property in the bitrise.yml configuration, only the Step (reference/ID), the Step will run with the default values as defined by the Step’s developer in the interface definition.

Let’s see an example with a single Script Step, which will be executed when you run bitrise run test:

format_version: 11
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
    
workflows:
  test:
    steps:
    - script:

Specify inputs for the Step with the inputs: list property. An input consists of a key and a value:

Indentation

Indentation in the YAML format is very important! You should use two- or four-space indentation, and you can’t use tabs to indent!

format_version: 11
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
    
workflows:
  test:
    steps:
    - script:
        inputs:
        - content: "echo 'Hello World!'"

If the Step doesn’t have any required inputs you don’t have to specify an input. You can specify values for as many inputs as you want to.

Step input values are always string / text values and they are passed to the Step as Environment Variables. The value can be multiline too, using the standard YAML multiline format:

format_version: 11
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git

workflows:
  test:
    steps:
    - [email protected]:
        inputs:
        - content: |
            #!/bin/bash
            set -ex
            var_to_print='Hello World!'
            echo "${var_to_print}"

If you use a multiline value, like the one above, you have to indent the value with either two or four spaces, compared to the key!

Force a Step to run even if a previous Step fails by setting the is_always_run property to true:

format_version: 1.3.1
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git

workflows:
  test:
    steps:
    - [email protected]:
        is_always_run: true
        inputs:
        - content: "puts 'Hello Ruby!'"
        - runner_bin: ruby

Use the title property to add a descriptive title to your Step:

format_version: 11
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git

workflows:
  test:
    steps:
    - [email protected]:
        title: Print Hello Ruby
        is_always_run: true
        inputs:
        - content: "puts 'Hello Ruby!'"
        - runner_bin: ruby