Auto-Unblock Pipelines on a Timer

We’re migrating a set of pipelines from GoCD to Buildkite, and we have a requirement to unblock pipelines overnight in various regions. Currently we’re implementing this with a regular “block” step, and a separate scheduled build that auto-unblocks other pipelines (we’ll have to script this using the GraphQL API).

What we’d like to be able to do is something like this:

steps:
  - block: "Deploy? (Automatically unblocks @ 3AM)"
    schedule_unblock: "0 3 * * *"

  - command: scripts/deploy.sh

This way the step will be auto-unblocked at 3AM.

Is this something that could be considered, or should it be implemented with a plugin?

We’re still facing this limitation, but I thought of an alternative solution. If the Update Schedule page had two options, Schedule new build and Unblock existing build.

This way we can select a step, by id, that we want to unblock.

A quick mock-up of what this panel could look like:

Today, I hit the same issue. I have 2 blocked steps. Normally I do tests. However, in this pipeline, First block is regression tests which takes 6 minutes to complete. Second block is a deploy trigger (not a deployment but a trigger for another pipeline).

With all steps unblocked it takes 8-9 minutes in total. Sometimes 10 minutes. I just don’t want to wait for 8-10 minutes for every push but do it for per 6-hours or at least daily.

How can we unblock a step in scheduled build?

Rergular tests:

  1. Start pipeline and jobs.
  2. Run tests.
  3. Stop at blocked step.
  4. Build passed in ~2 minutes

Scheduled tests:

  1. Start pipeline and jobs.
  2. Run tests.
  3. This is a scheduled build, Unblock all steps and go ahead…
  4. Build passed in ~10 minutes