Closed nadenf closed 6 years ago
Thanks @baank! Lots of folks do this in Buildkite with a pipeline per deployment environment and then triggering asynchronous builds in those pipelines.
For instance, our agent releases to Experimental, Beta and Stable. You can see the different pipeline files in https://github.com/buildkite/agent/tree/master/.buildkite. We then have a series of block steps that can be used to deploy to those stages:
We try and keep things as simple building blocks vs imposing structures like environments or specific constructs around deployments. It means folks can fit the tool to how they do these things!
Actually it's something different.
(1) The UI is not for specific build parameters e.g. environment or build. It's generic. So I could have a build variable e.g. "FRUIT_TYPE" and you could specify the user pick from Orange, Apple etc. The choice that the user made is then mapped back to an environment variable you can use in your build.
(2) This feature is not for the person building the pipeline. It's for the person running the pipeline. In most enterprises these are two different people e.g. engineering + testing / engineering + operations. And so having an easy/safe way for Operations to deploy to Production is really important.
This screenshot image is what Jenkins can do: https://stackoverflow.com/questions/26921171/jenkins-is-this-possible-have-more-than-one-build-button-for-a-parameter-base
Ah right, apologies I misunderstood!
We support block steps with select inputs (https://buildkite.com/docs/pipelines/block-step#select-input-attributes) that you could use for this. If you had a step that dynamically uploaded a block step you could populate it with whatever you wanted. The selected value is then available to later steps as meta-data.
Completely missed that page. I think we can safely close this :)
This is one of the best features of Jenkins IMHO and a large feature request.
Imagine you have a "Deploy My App" pipeline and when that pipeline is run you want the user to:
(1) Pick from a list of available app versions (this could come from Git tags or from existing Buildkite builds). So the request is that when a build is triggered a popup would appear with a dynamically populated dropdown of available app builds.
(2) Pick from a list of predetermined environments e.g. Dev, Test Stag, Prod. The user would be able to select from multiple environments (using a multiselect) and the values would be prepopulated within Pipeline Settings.
(3) Upload a file which will be made available as part of the deploy process.