Drone supports defining conditional pipeline steps in the when
block. If all conditions in the when
block evaluate to true the step is executed, otherwise it is skipped.
Example conditional execution by branch:
pipeline:
slack:
image: plugins/slack
channel: dev
+ when:
+ branch: master
The step now triggers on master, but also if the target branch of a pull request is master
. Add an event condition to limit it further to pushes on master only.
Branches
Execute a step if the branch is master
or develop
:
when:
branch: [master, develop]
Execute a step if the branch starts with prefix/*
:
when:
branch: prefix/*
Execute a step using custom include and exclude logic:
when:
branch:
include: [ master, release/* ]
exclude: [ release/1.0.0, release/1.1.* ]
Events
Execute a step if the build event is a tag
:
when:
event: tag
Execute a step if the build event is a tag
created from the specified branch:
when:
event: tag
+ branch: master
Execute a step for all non-pull request events:
when:
event: [push, tag, deployment]
Execute a step for all build events:
when:
event: [push, pull_request, tag, deployment]
Tags
Execute a step if the tag name starts with release
:
when:
tag: release*
Status
Execute a step when the build status changes:
when:
status: changed
Execute a step when the build is passing or failing:
when:
status: [ failure, success ]
Platform
Execute a step for a specific platform:
when:
platform: linux/amd64
Execute a step for a specific platform using wildcards:
when:
platform: [ linux/*, windows/amd64 ]
Environment
Execute a step for deployment events matching the target deployment environment:
when:
environment: production
event: deployment
Matrix
Execute a step for a single matrix permutation:
when:
matrix:
GO_VERSION: 1.5
REDIS_VERSION: 2.8
Instance
Execute a step only on a certain Drone instance:
when:
instance: stage.drone.company.com
Questions?
We are always happy to help with questions you might have. Search our documentation or check out answers to common questions. You can also post questions or comments to our community forum.
Is there a mistake on this page? Please let us know or edit this page.