Custom 'when' or events

Hi
Is it possible to declare custom when properties (or generating custom events? )

Let’s say I want to execute build step if commit message contains “BUILD_ME”.
I see possible solutions as:

pipeline: build: image: plugins/docker:latest when: script: check_if_contains_word.sh #note this line
2.
pipeline: build: image: plugins/docker:latest when: event: custom_build_me # note this line

Being able to use such constraints will increase flexibility of pipelines ( like trigger build if only target directory content changed);

Probably it is possible via custom plugin, is it?

P.S. Sorry for formating, not sure how do I add spaces to yml files without cut

this is not possible, but if you want to manually trigger builds you can use drone deploy. You pick and existing build number, and you promote it. Example command signature:

drone deploy <repo> <build number> <environment>

Example command with dummy data

drone deploy octocat/hello-world 22 prod

Then in your yaml you can specify that certain steps should only execute for deployment events and for certain environments. For example:

pipeline:
  ...
  docker_stage:
    image: plugins/docker
    when:
      event: deployment
      environment: staging
  docker_prod:
    image: plugins/docker
    when:
      event: deployment
      environment: production

Note that you will need to enable deployment events for your repository for this to work. You can enable deployment events by going to your repository settings in Drone.

2 Likes