includes:
  - python-file: openstack_functions.py

pipelines:
  - name: check
    description: Newly uploaded patchsets enter this pipeline to receive an initial +/-1 Verified vote from Jenkins.
    manager: IndependentPipelineManager
    failure-message: Build failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures
    precedence: low
    trigger:
      gerrit:
        - event: patchset-created
        - event: change-restored
        - event: comment-added
          comment_filter: (?i)^(Patch Set [0-9]+:\n\n)?\s*(recheck|reverify)
    success:
      gerrit:
        verified: 1
    failure:
      gerrit:
        verified: -1

  - name: gate
    description: Changes that have been approved by core developers are enqueued in order in this pipeline, and if they pass tests in Jenkins, will be merged.
    failure-message: Build failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures
    manager: DependentPipelineManager
    precedence: low
    trigger:
      gerrit:
        - event: comment-added
          approval:
            - workflow: 1
        - event: comment-added
          comment_filter: (?i)^(Patch Set [0-9]+:\n\n)?\s*(recheck|reverify)
    start:
      gerrit:
        verified: 0
    success:
      gerrit:
        verified: 2
        submit: true
    failure:
      gerrit:
        verified: -2
    window-floor: 20
    window-increase-factor: 2

  - name: post
    description: This pipeline runs jobs that operate after each change is merged.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      gerrit:
        - event: ref-updated
          ref: ^(?!refs/).*$

  - name: tag
    description: This pipeline runs jobs in response to any tag event.
    manager: IndependentPipelineManager
    precedence: high
    trigger:
      gerrit:
        - event: ref-updated
          ref: ^refs/tags/.*$

  - name: pre-release
    description: This pipeline runs jobs on projects in response to pre-release tags.
    manager: IndependentPipelineManager
    precedence: high
    trigger:
      gerrit:
        - event: ref-updated
          ref: ^refs/tags/([0-9]+\.)+[0-9]*(alpha|beta|candidate|rc|a|b|c|r|g)[0-9]*$

  - name: release
    description: When a commit is tagged as a release, this pipeline runs jobs that publish archives and documentation.
    manager: IndependentPipelineManager
    precedence: high
    trigger:
      gerrit:
        - event: ref-updated
          ref: ^refs/tags/([0-9]+\.)+[0-9]+$

  - name: silent
    description: This pipeline is used for silently testing new jobs.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      gerrit:
        - event: patchset-created
        - event: comment-added
          comment_filter: (?i)^(Patch Set [0-9]+:\n\n)?\s*(recheck|reverify)

  - name: experimental
    description: On-demand pipeline for requesting a run against a set of jobs that are not yet gating. Leave review comment of "check experimental" to run jobs in this pipeline.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      gerrit:
        - event: comment-added
          comment_filter: (?i)^(Patch Set [0-9]+:\n\n)?\s*check experimental\s*$
    success:
      gerrit:
        force-message: true
    failure:
      gerrit:
        force-message: true

  - name: periodic
    description: Jobs in this queue are triggered on a timer.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      timer:
        - time: '0 6 * * *'

jobs:
  - name: ^.*$
    parameter-function: set_log_url
  - name: completely-bogus-org/test
    voting: false
  - name: gtest-org/test2
    voting: false

projects:
  - name: gtest-org/gtest
    check:
      - noop
    gate:
      - noop
    post:
      - noop
    tag:
      - noop
    pre-release:
      - noop
    release:
      - noop
    silent:
      - noop
    experimental:
      - noop

  - name: gtest-org/gtest2
    periodic:
      - noop