Input Step

An input step is used to collect information from a user. An input step is functionally identical to a block step, however an input step doesn't create any dependencies to the steps before and after it.

Input steps will block your build from completing, but will not automatically block other steps from running unless they specifically depend upon it.

Input steps with can only be defined using a pipeline.yml file.

You can add form fields to input steps with the fields attribute. There are two field types available: text or select. The select input type is displayed as radio buttons when it contains less than six items, and as a drop down list when it contains more than six items.

The data you collect from these fields is then available to subsequent steps via the build meta-data.

Input Step Attributes

Input and block steps have the same attributes available for use.

Optional attributes:

prompt The instructional message displayed in the dialog box when the step is activated.
Example: "Release to production?"
Example: "Fill out the details for this release"
fields A list of input fields required to be filled out before the step will be marked as passed.
Available input field types: text, select
branches The branch pattern defining which branches will include this input step in their builds.
Example: "master stable/*"
if A boolean expression to restrict the running of the step. See Using conditionals for supported expressions.
Example: build.message != "skip me"
depends_on A list of step keys that this step depends on. This step will only proceed after the named steps have completed. See managing step dependencies for more information.
Example: "test-suite"
allow_dependency_failure Whether to continue to proceed past this step if any of the steps named in the depends_on attribute fail.
Default: false
steps:
  - input: ":rocket: Release!"

Text Input Attributes

Line endings

A text field normalizes line endings to Unix format (\n).

Required attributes:

key The meta-data key that stores the field's input (e.g. via the buildkite-agent meta-data command)
The key may only contain alphanumeric characters, slashes or dashes. Example: "release-name"
steps:
  - input: "Release information"
    fields:
      - text: "Code Name"
        key: "release-name"

Optional attributes:

hint The explanatory text that is shown after the label.
Example: "What’s the code name for this release? :name_badge:"
required A boolean value that defines whether the field is required for form submission.
Default value: true
default The value that is pre-filled in the text field.
Example: "Flying Dolphin"
steps:
  - input: "Request Release"
    fields:
      - text: "Code Name"
        key: "release-name"
        hint: "What’s the code name for this release? :name_badge:"
        required: false
        default: "Release #"

Select Input Attributes

Required attributes:

key The meta-data key that stores the field's input (e.g. via the buildkite-agent meta-data command)
The key may only contain alphanumeric characters, slashes or dashes. Example: "release-stream"
options The list of select field options.
For 6 or less options they’ll be displayed as radio buttons, otherwise they'll be displayed in a dropdown box.
If selecting multiple options is permitted the options will be displayed as checkboxes.

Each select option has the following required attributes:

label The text displayed for the option.
Example: "Stable"
value The value to be stored as meta-data (e.g. to be later retrieved via the buildkite-agent meta-data command)
Example: "stable"
steps:
  - input: "Request Release"
    fields:
      - select: "Stream"
        key: "release-stream"
        options:
          - label: "Beta"
            value: "beta"
          - label: "Stable"
            value: "stable"

Optional attributes:

hint The text displayed directly under the select field’s label.
Example: "Which release stream does this belong in? :fork:"
required A boolean value that defines whether the field is required for form submission.
Default: true
multiple A boolean value that defines whether multiple options may be selected.
When multiple options are selected, they are delimited in the meta-data field by a line break (\n)
Default: false
default The value of the option or options that will be pre-selected.
When multiple is enabled, this can be an array of values to select by default.
Example: "beta"
steps:
  - input: "Release details"
    fields:
      - select: "Stream"
        key: "release-stream"
        hint: "Which release stream does this belong in? :fork:"
        required: false
        default: "beta"
        options:
          - label: "Beta"
            value: "beta"
          - label: "Stable"
            value: "stable"