Problem
depends_on is a hard gate today: if the dependency is skipped because its triggers didn't match, the dependent callback is also skipped. run_policy: always lets the dependent run even when the dep was skipped — but it also runs when the dep failed, which isn't always desired.
For pipelines where a deploy should wait for a build only when the build actually runs, neither current option fits.
Proposed
Add optional_depends_on: [<callback>]:
- Dep ran and succeeded → wait, proceed
- Dep ran and failed → skip the dependent (same as hard
depends_on)
- Dep was skipped because its triggers didn't match → proceed without waiting
Impact
Enables the "build conditionally rebuilds, deploy always runs reading prior or fresh artifact from state" pattern without escape hatches like run_policy: always that also tolerate dep failure.
Problem
depends_onis a hard gate today: if the dependency is skipped because its triggers didn't match, the dependent callback is also skipped.run_policy: alwayslets the dependent run even when the dep was skipped — but it also runs when the dep failed, which isn't always desired.For pipelines where a deploy should wait for a build only when the build actually runs, neither current option fits.
Proposed
Add
optional_depends_on: [<callback>]:depends_on)Impact
Enables the "build conditionally rebuilds, deploy always runs reading prior or fresh artifact from state" pattern without escape hatches like
run_policy: alwaysthat also tolerate dep failure.