language: python

env:
  matrix:
    - T=none

matrix:
  exclude:
    - env: T=none
  include:
    - env: T=sanity/1
    - env: T=sanity/2
    - env: T=sanity/3
    - env: T=sanity/4

    - env: T=units/2.6
    - env: T=units/2.7
    - env: T=units/3.5
    - env: T=units/3.6
    - env: T=units/3.7
    - env: T=units/3.8

    - env: T=windows/2008/1
    - env: T=windows/2008-R2/1
    - env: T=windows/2012/1
    - env: T=windows/2012-R2/1
    - env: T=windows/2016/1
    - env: T=windows/2019/1

    - env: T=windows/2008/2
    - env: T=windows/2008-R2/2
    - env: T=windows/2012/2
    - env: T=windows/2012-R2/2
    - env: T=windows/2016/2
    - env: T=windows/2019/2

    - env: T=windows/2008/3
    - env: T=windows/2008-R2/3
    - env: T=windows/2012/3
    - env: T=windows/2012-R2/3
    - env: T=windows/2016/3
    - env: T=windows/2019/3

    - env: T=windows/2008/4
    - env: T=windows/2008-R2/4
    - env: T=windows/2012/4
    - env: T=windows/2012-R2/4
    - env: T=windows/2016/4
    - env: T=windows/2019/4

    - env: T=windows/2008/5
    - env: T=windows/2008-R2/5
    - env: T=windows/2012/5
    - env: T=windows/2012-R2/5
    - env: T=windows/2016/5
    - env: T=windows/2019/5

    - env: T=windows/2008/6
    - env: T=windows/2008-R2/6
    - env: T=windows/2012/6
    - env: T=windows/2012-R2/6
    - env: T=windows/2016/6
    - env: T=windows/2019/6

    - env: T=windows/2008/7
    - env: T=windows/2008-R2/7
    - env: T=windows/2012/7
    - env: T=windows/2012-R2/7
    - env: T=windows/2016/7
    - env: T=windows/2019/7

    - env: T=network

    - env: T=osx/10.11/1
    - env: T=rhel/7.6/1
    - env: T=rhel/8.0/1
    - env: T=freebsd/11.1/1
    - env: T=freebsd/12.0/1
    - env: T=linux/centos6/1
    - env: T=linux/centos7/1
    - env: T=linux/fedora29/1
    - env: T=linux/fedora30/1
    - env: T=linux/opensuse15py2/1
    - env: T=linux/opensuse15/1
    - env: T=linux/ubuntu1604/1
    - env: T=linux/ubuntu1804/1

    - env: T=osx/10.11/2
    - env: T=rhel/7.6/2
    - env: T=rhel/8.0/2
    - env: T=freebsd/11.1/2
    - env: T=freebsd/12.0/2
    - env: T=linux/centos6/2
    - env: T=linux/centos7/2
    - env: T=linux/fedora29/2
    - env: T=linux/fedora30/2
    - env: T=linux/opensuse15py2/2
    - env: T=linux/opensuse15/2
    - env: T=linux/ubuntu1604/2
    - env: T=linux/ubuntu1804/2

    - env: T=osx/10.11/3
    - env: T=rhel/7.6/3
    - env: T=rhel/8.0/3
    - env: T=freebsd/11.1/3
    - env: T=freebsd/12.0/3
    - env: T=linux/centos6/3
    - env: T=linux/centos7/3
    - env: T=linux/fedora29/3
    - env: T=linux/fedora30/3
    - env: T=linux/opensuse15py2/3
    - env: T=linux/opensuse15/3
    - env: T=linux/ubuntu1604/3
    - env: T=linux/ubuntu1804/3

    - env: T=osx/10.11/4
    - env: T=rhel/7.6/4
    - env: T=rhel/8.0/4
    - env: T=freebsd/11.1/4
    - env: T=freebsd/12.0/4
    - env: T=linux/centos6/4
    - env: T=linux/centos7/4
    - env: T=linux/fedora29/4
    - env: T=linux/fedora30/4
    - env: T=linux/opensuse15py2/4
    - env: T=linux/opensuse15/4
    - env: T=linux/ubuntu1604/4
    - env: T=linux/ubuntu1804/4

    - env: T=aws/2.7/1
    - env: T=aws/3.6/1

    - env: T=aws/2.7/2
    - env: T=aws/3.6/2

    - env: T=azure/2.7/1
    - env: T=azure/3.6/1

    - env: T=azure/2.7/2
    - env: T=azure/3.6/2

    - env: T=azure/2.7/3
    - env: T=azure/3.6/3

    - env: T=azure/2.7/4
    - env: T=azure/3.6/4

    - env: T=azure/2.7/5
    - env: T=azure/3.6/5

    - env: T=azure/2.7/6
    - env: T=azure/3.6/6

    - env: T=azure/2.7/7
    - env: T=azure/3.6/7

    - env: T=azure/2.7/8
    - env: T=azure/3.6/8

    - env: T=vcenter/2.7/1
    - env: T=vcenter/3.6/1

    - env: T=cs/2.7/1
    - env: T=cs/3.6/1

    - env: T=tower/2.7/1
    - env: T=tower/3.6/1

    - env: T=cloud/2.7/1
    - env: T=cloud/3.6/1

    - env: T=hcloud/2.7/1
    - env: T=hcloud/3.6/1
branches:
  except:
    - "*-patch-*"
    - "revert-*-*"

build:
  ci:
    - test/utils/shippable/timing.sh test/utils/shippable/shippable.sh $T

integrations:
  notifications:
    - integrationName: email
      type: email
      on_success: never
      on_failure: never
      on_start: never
      on_pull_request: never
    - integrationName: irc
      type: irc
      recipients:
      - "chat.freenode.net#ansible-notices"
      on_success: change
      on_failure: always
      on_start: never
      on_pull_request: always
    - integrationName: slack
      type: slack
      recipients:
      - "#shippable"
      on_success: change
      on_failure: always
      on_start: never
      on_pull_request: never
