buildkite / feedback

Got feedback? Please let us know!
https://buildkite.com
25 stars 24 forks source link

How to configure timeout for block step #474

Open sayboras opened 5 years ago

sayboras commented 5 years ago

Hi,

As part of our pipeline, we are having some block step, which require user manual input. We want to have a timeout configured for this step as well, but unable to find anything in docs.

Please let me know if it's possible.

lox commented 5 years ago

This is a neat idea! We don't have anything like this presently, but will consider it in future. Thanks for the suggestion!

daBayrus commented 5 years ago

+1 we also like this feature..

xelibrion commented 5 years ago

+1, would be super useful

derekleverenz commented 5 years ago

+1 here too, i'd love that. I used that feature in jenkins to have an optional prod deploy that is blocked after a staging deploy, but time out and mark the build complete after an hour or so, so we dont have potentially old production deploys sticking around

sayboras commented 5 years ago

any plan for this feature ?

stefanmb commented 5 years ago

@lox Could we get an update on this request?

keithpitt commented 5 years ago

👋 Howdy! This is a good idea and something we should add.

Quick question...

If you did:

steps:
  - block: "Blah"
    timeout: 20

What would you expect it to do after 20 minutes?

Once we can figure out some of the specifics, it should be a simple thing to add!

stefanmb commented 5 years ago

Fail the build?

For our uses this is sufficient as it sends a signal to the developer they needed to do something. The main complaint has been that builds hang forever waiting for a confirmation.

derekleverenz commented 5 years ago

For us I think failing the build would be sufficient, but ideally it would complete the build, treating any steps below as if they failed but were configured with soft_fail, or simply were never run.

The usecase here is one that we've used in jenkins in the past, where a pipeline is set up to build -> run tests -> deploy to staging -> wait for input, optionally deploy to production. So, in that setup, if we never deploy to production we still consider it a successful build to staging, but we want to time it out so that that particular build cant be deployed to production at a later date.

sayboras commented 5 years ago

For me, it should stop me from deploying further. Marking the build is red is also fine, it's more visual to do quick check when the last entire steps ran.

lox commented 5 years ago

I want block steps to have a required: true|false parameter that indicates whether the build is green or yellow until the block is triggered.

In that world, timeout with required: true would fail the build, with required: false it would continue just like it was clicked.

NorseGaud commented 5 years ago

Just came to needing this; for our purposes we would want a cancellation. Failing, and looking like any normal failure, would mess with our metrics if we're just a little slow on getting to community PR review.

seekdave commented 4 years ago

+1, but in our case we would like the option to have the build stop and succeed on timeout, rather than fail or continue. We would use the block to provide an optional step to deploy production - timeout would ideally result in skipping all remaining steps.

IRESS-Chris-Hill commented 4 years ago

+1 We would like to stop builds if a block step is not actioned within a set time

patricktyroler commented 4 years ago

I want block steps to have a required: true|false parameter that indicates whether the build is green or yellow until the block is triggered.

In that world, timeout with required: true would fail the build, with required: false it would continue just like it was clicked.

For us this would be ideal, we'd like to have the option for the build to continue in some cases if it hasn't been touched.

doyleish commented 4 years ago

+1 we would like this as well. Our use case revolves around staged deployments and offering a window to halt a deployment before it moves on to the next stage. (i.e. if a bug is discovered in dev or stg environments before going live)

sayboras commented 4 years ago

this feature is still useful for us after 1 year, and seems like there is a lot of interests as well.

any plan for near future @lox @keithpitt ? thanks a lot.

babinslava commented 4 years ago

+1 Sometimes I would like to execute an optional step.

anthonynovatsis commented 3 years ago

+1 would also like this feature. We want a block step for manual approval to deploy to production but would like a timeout (and cancel) so builds are not sitting in this state

txbm commented 3 years ago

We would like to be able to specify a timeout and also specify the action after timeout.

For example:

steps:
  - block: "Deploy to prod?"
    timeout:
        after: 20m
        then: succeed | fail | continue

This feature was almost instantly requested by our dev team after using BuildKite for only a few weeks.

bvilnis commented 3 years ago

+1 on this. I'm infracoding AWS resources and want a block step between my terraform plan and terraform apply but don't want it sitting there indefinitely. Being able to declare a timeout with a chosen result at the end of it would be immensely helpful.

elbrujohalcon commented 3 years ago

Another +1 to this feature.

I have something like…

  - block: Choose Environment
    fields:
      - select: "Choose what environment to deploy to"
        key: environment
        default: "staging"
        options:
          - label: "Staging"
            value: "staging"
          - label: "Production"
            value: "production"

I want, after the timeout, the default value to be chosen.

cemeng commented 2 years ago

👍 our use case is the same as @bvilnis and @elbrujohalcon

rfan-debug commented 1 year ago

Is there an update on this feature? Our use case is similar to @bvilnis 's.