- job-template:
    name: '{name}-coverage'

    wrappers:
      - build-timeout:
          timeout: 40
      - timestamps

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - coverage

    publishers:
      - zuul-swift-upload-logs-with-console:
          upload_source: 'cover/'

    node: '{node}'


- job-template:
    name: 'gate-{name}-pep8'

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - pep8

    publishers:
      - zuul-swift-upload-console-log

    node: '{node}'

- job-template:
    name: 'experimental-swift-logs-{name}-pep8-centos6'
    node: 'bare-centos6'

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - pep8:
      - shell: purposefully_fail_me

    publishers:
      - zuul-swift-upload-logs-with-console:
          upload_source: '.tox/pep8/log'

- job-template:
    name: 'gate-{name}-pylint'

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - pylint

    publishers:
      - zuul-swift-upload-console-log

    node: '{node}'


- job-template:
    name: 'gate-{name}-python26'

    wrappers:
      - build-timeout:
          timeout: 70
      - timestamps

    builders:
      - shell: |
          #!/bin/bash -xe
          if ! rpm -ql libffi-devel >/dev/null ; then
              sudo yum install -y libffi-devel
          fi
          rpm -ql libffi-devel
      - revoke-sudo
      - gerrit-git-prep
      - python26
      - assert-no-extra-files

    publishers:
      - test-results
      - console-log
      - zuul-swift-test-results-with-console

    node: bare-centos6

- job-template:
    name: 'gate-{name}-python27'

    wrappers:
      - build-timeout:
          timeout: 50
      - timestamps

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - python27
      - assert-no-extra-files

    publishers:
      - test-results
      - console-log
      - zuul-swift-test-results-with-console

    node: '{node}'

- job-template:
    name: 'gate-{name}-python34'

    wrappers:
      - build-timeout:
          timeout: 40
      - timestamps

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - python34
      - assert-no-extra-files

    publishers:
      - test-results
      - console-log
      - zuul-swift-test-results-with-console

    node: '{node}'

- job-template:
    name: 'gate-{name}-pypy'

    wrappers:
      - build-timeout:
          timeout: 40
      - timestamps

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - pypy
      - assert-no-extra-files

    publishers:
      - test-results
      - console-log
      - zuul-swift-test-results-with-console

    node: '{node}'

- job-template:
    name: 'gate-{name}-docs'

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - docs

    publishers:
      - zuul-swift-upload-console-log
      - upload-sphinx-draft

    node: '{node}'

- job-template:
    name: 'gate-{name}-tox-{envlist}'

    wrappers:
      - build-timeout:
          timeout: 40
      - timestamps

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - tox:
          envlist: '{envlist}'
      - assert-no-extra-files

    publishers:
      - test-results
      - console-log
      - zuul-swift-test-results-with-console

    node: '{node}'

- job-template:
    name: '{name}-tarball'
    node: 'bare-precise || bare-trusty'

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - tarball

    publishers:
      - tarball:
          project: '{name}'
          site: '{tarball-site}'
      - wheel:
          project: '{name}'
          site: '{tarball-site}'
      - zuul-swift-upload-console-log


- job-template:
    name: '{name}-branch-tarball'
    node: 'bare-precise || bare-trusty'

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - tarball
      - shell: |
          #!/bin/bash -xe
          BRANCH=$ZUUL_REFNAME
          BRANCH_PATH=`echo $BRANCH | tr / -`
          mv dist/*.tar.gz dist/{name}-$BRANCH_PATH.tar.gz

    publishers:
      - tarball:
          project: '{name}'
          site: '{tarball-site}'
      - zuul-swift-upload-console-log


- job-template:
    name: 'gate-{name}-requirements'
    node: 'bare-precise || bare-trusty'

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - shell: |
          #!/bin/bash -xe
          /usr/local/jenkins/slave_scripts/project-requirements-change.py $ZUUL_BRANCH

    publishers:
      - zuul-swift-upload-console-log


- job-template:
    name: 'gate-{name}-pip-missing-reqs'

    wrappers:
      - build-timeout:
          timeout: 40
      - timestamps

    builders:
      - revoke-sudo
      - gerrit-git-prep
      - tox:
          envlist: 'pip-missing-reqs'
      - assert-no-extra-files

    publishers:
      - test-results
      - console-log
      - zuul-swift-test-results-with-console

    node: '{node}'


- job-group:
    name: python-jobs
    jobs:
      - '{name}-coverage'
      - 'gate-{name}-pep8'
      - 'gate-{name}-python26'
      - 'gate-{name}-python27'
      - 'gate-{name}-python34'
      - 'gate-{name}-pypy'
      - 'gate-{name}-docs'
      - 'gate-{name}-requirements'
      - '{name}-tarball'
      - '{name}-branch-tarball'
      # pylint isn't standard
      # pip-missing-reqs isn't standard
      # gate-{name}-tox-{envlist} also isn't standard, but is reserved for
      # projects that want to run specific jobs via tox