steps:
  when-branch:
    image: alpine
    commands:
      - echo "test"
    when:
      branch: main

  when-branch-array:
    image: alpine
    commands:
      - echo "test"
    when:
      branch: [main, deploy]

  when-event:
    image: alpine
    commands:
      - echo "test"
    when:
      event: push
      branch:
        include: main
        exclude: [develop, feature/*]

  when-event-array:
    image: alpine
    commands:
      - echo "test"
    when:
      event:
        - manual
        - push
        - pull_request
        - pull_request_closed
        - pull_request_metadata
        - tag
        - deployment
        - release

  when-ref:
    image: alpine
    commands:
      - echo "test"
    when:
      ref: 'refs/tags/v**'

  when-status:
    image: alpine
    commands:
      - echo "test"
    when:
      status: [success, failure]

  when-platform:
    image: alpine
    commands:
      - echo "test"
    when:
      platform: linux/amd64

  when-platform-array:
    image: alpine
    commands:
      - echo "test"
    when:
      platform: [linux/*, windows/amd64]

  when-environment:
    image: alpine
    commands:
      - echo "test"
    when:
      event: deployment

  when-matrix:
    image: alpine
    commands:
      - echo "test"
    when:
      matrix:
        GO_VERSION: 1.5
        REDIS_VERSION: 2.8

  when-instance:
    image: alpine
    commands:
      - echo "test"
    when:
      instance: stage.woodpecker.company.com

  when-path:
    image: alpine
    commands:
      - echo "test"
    when:
      path: 'folder/**'

  when-path-array:
    image: alpine
    commands:
      - echo "test"
    when:
      path:
        - 'folder/**'
        - '**/*.c'

  when-path-include-exclude:
    image: alpine
    commands:
      - echo "test"
    when:
      path:
        include: ['.woodpecker/*.yml', '*.ini']
        exclude: ['*.md', 'docs/**']
        ignore_message: '[ALL]'
        on_empty: true

  when-repo:
    image: alpine
    commands:
      - echo "test"
    when:
      repo: test/test

  when-multi:
    image: alpine
    commands:
      - echo "test"
    when:
      - event: pull_request
        repo: test/test
      - event: push
        branch: main

  when-cron:
    image: alpine
    commands:
      - echo "test"
    when:
      cron: 'update locales'
      event: cron

  when-cron-list:
    image: alpine
    commands: echo "test"
    when:
      - event: cron
        cron:
          include:
            - test
            - hello
          exclude: hi

  when-evaluate:
    image: alpine
    commands: echo "test"
    when:
      - event: push
        evaluate: 'CI_PIPELINE_EVENT == "push" && CI_REPO == "owner/repo"'
