- job:
    name: swift-tox-base
    parent: openstack-tox-py27
    description: |
      Base job for swift-tox jobs.

      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    timeout: 2400
    vars:
      tox_environment:
        TMPDIR: '{{ ansible_env.HOME }}/xfstmp'

- job:
    name: swift-tox-py27
    parent: swift-tox-base
    description: |
      Run unit-tests for swift under cPython version 2.7.

      Uses tox with the ``py27`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: py27

- job:
    name: swift-tox-py27-centos-7
    parent: swift-tox-py27
    nodeset: centos-7

- job:
    name: swift-tox-py35
    parent: swift-tox-base
    description: |
      Run unit-tests for swift under cPython version 3.5.

      Uses tox with the ``py35`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: py35
      bindep_profile: test py35

- job:
    name: swift-tox-func
    parent: swift-tox-base
    description: |
      Run functional tests for swift under cPython version 2.7.

      Uses tox with the ``func`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: func

- job:
    name: swift-tox-func-centos-7
    parent: swift-tox-func
    nodeset: centos-7

- job:
    name: swift-tox-func-encryption
    parent: swift-tox-base
    description: |
      Run functional tests for swift under cPython version 2.7.

      Uses tox with the ``func-encryption`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: func-encryption

- job:
    name: swift-tox-func-encryption-centos-7
    parent: swift-tox-func-encryption
    nodeset: centos-7

- job:
    name: swift-tox-func-ec
    parent: swift-tox-base
    description: |
      Run functional tests for swift under cPython version 2.7.

      Uses tox with the ``func-post-ec`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    branches: ^(?!stable/ocata).*$
    vars:
      tox_envlist: func-ec

- job:
    name: swift-tox-func-ec-centos-7
    parent: swift-tox-func-ec
    nodeset: centos-7

- job:
    name: swift-tox-func-domain-remap-staticweb
    parent: swift-tox-base
    description: |
      Run functional tests for swift under cPython version 2.7.

      Uses tox with the ``func-domain-remap-staticweb`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: func-domain-remap-staticweb

- job:
    name: swift-tox-func-s3api
    parent: swift-tox-base
    description: |
      Run functional tests for swift under cPython version 2.7.

      Uses tox with the ``func-s3api`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: func-s3api

- job:
    name: swift-probetests-centos-7
    parent: unittests
    nodeset: centos-7
    description: |
      Setup a SAIO dev environment and run Swift's probe tests
    timeout: 3600
    pre-run:
      - tools/playbooks/saio_single_node_setup/install_dependencies.yaml
      - tools/playbooks/saio_single_node_setup/setup_saio.yaml
      - tools/playbooks/saio_single_node_setup/make_rings.yaml
    run: tools/playbooks/probetests/run.yaml
    post-run: tools/playbooks/probetests/post.yaml

- project:
    check:
      jobs:
        - swift-tox-py27:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/(functional|probe)/.*$
        - swift-tox-py35:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/(functional|probe)/.*$
        - swift-tox-func:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/probe/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - swift-tox-func-encryption:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/probe/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - swift-tox-func-domain-remap-staticweb:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/probe/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - swift-tox-func-ec:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/probe/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - swift-tox-func-s3api:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/probe/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - swift-probetests-centos-7:
            irrelevant-files:
              - ^(api-ref|releasenotes)/.*$
              # Keep doc/saio -- we use those sample configs in the saio playbooks
              - ^doc/(requirements.txt|(manpages|s3api|source)/.*)$
              - ^test/(unit|functional)/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - legacy-tempest-dsvm-neutron-full:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/(unit|functional|probe)/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - neutron-grenade:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/(unit|functional|probe)/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - openstack-tox-lower-constraints:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/(functional|probe)/.*$
    gate:
      jobs:
        # For gate jobs, err towards running more jobs (so, generally avoid
        # using irrelevant-files). Exceptions should mainly be made for
        # long-running jobs, like probetests or (once they move to
        # in-tree definitions) dsvm jobs.
        - swift-tox-py27
        - swift-tox-py35
        - swift-tox-func
        - swift-tox-func-encryption
        - swift-tox-func-domain-remap-staticweb
        - swift-tox-func-ec
        - swift-tox-func-s3api
        - swift-probetests-centos-7:
            irrelevant-files:
              - ^(api-ref|releasenotes)/.*$
              # Keep doc/saio -- we use those sample configs in the saio playbooks
              - ^doc/(requirements.txt|(manpages|s3api|source)/.*)$
              - ^test/(unit|functional)/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - legacy-tempest-dsvm-neutron-full:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/(unit|functional|probe)/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - neutron-grenade:
            irrelevant-files:
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/(unit|functional|probe)/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - openstack-tox-lower-constraints
    experimental:
      jobs:
        - swift-tox-py27-centos-7
        - swift-tox-func-centos-7
        - swift-tox-func-encryption-centos-7
        - swift-tox-func-ec-centos-7