Adding human interaction back into automated builds

With our continual focus on automating everything it's easy to forget that some tasks still require a human touch. This is why we originally introduced the ability to manually run pipelines. This feature works well for simple use cases, but there are many use cases that it hasn't been able to support. Until now.

Today, custom pipelines get a major boost with the ability to pass in variables when you trigger them. Now you can launch a custom pipeline to build a specific sub-project, to run a particular test suite, to deploy to a particular environment or to perform virtually any other task based on inputs you supply. In the past the only way to achieve this was to define a separate custom pipeline for every possible combination of inputs, leading to endless repetition and a maintenance nightmare. If you've experienced this problem first-hand then get ready to drastically simplify your pipeline configurations.

To use the new feature, all you need to do is list which extra variables your custom pipeline needs:

pipelines:
  custom:
    deploy:
      - variables:
          - name: ENVIRONMENT
      - step:
          script:
             - echo "Deploying to $ENVIRONMENT"
             - # ... rest of deployment script

When you manually trigger the pipeline you will be prompted to enter values for the variables:

These variables are made available as environment variables within your pipeline.

For all the details, you can find the official documentation here. Give the new feature a try and let us know what you think by commenting on the original proposal.

Happy building!