trigger:
  batch: true
  branches:
    include:
      - main
      - stable-*

pr:
  autoCancel: true
  branches:
    include:
      - main
      - stable-*

schedules:
  - cron: 0 9 * * *
    displayName: Nightly
    always: true
    branches:
      include:
        - main
        - stable-*

variables:
  - name: checkoutPath
    value: ansible_collections/ansible/posix
  - name: coverageBranches
    value: main
  - name: pipelinesCoverage
    value: coverage
  - name: entryPoint
    value: tests/utils/shippable/shippable.sh
  - name: fetchDepth
    value: 0

resources:
  containers:
    - container: default
      image: quay.io/ansible/azure-pipelines-test-container:1.9.0

pool: Standard

stages:

## Docker
  - stage: Docker_devel
    displayName: Docker devel
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: devel/linux/{0}/1
          targets:
            - name: CentOS 7
              test: centos7
            - name: Fedora 34
              test: fedora34
            - name: Fedora 35
              test: fedora35
            - name: openSUSE 15 py3
              test: opensuse15
            - name: Ubuntu 18.04
              test: ubuntu1804
            - name: Ubuntu 20.04
              test: ubuntu2004
  - stage: Docker_2_13
    displayName: Docker 2.13
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: 2.13/linux/{0}/1
          targets:
            - name: CentOS 7
              test: centos7
            - name: Fedora 34
              test: fedora34
            - name: Fedora 35
              test: fedora35
            - name: openSUSE 15 py3
              test: opensuse15
            - name: Ubuntu 18.04
              test: ubuntu1804
            - name: Ubuntu 20.04
              test: ubuntu2004
  - stage: Docker_2_12
    displayName: Docker 2.12
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: 2.12/linux/{0}/1
          targets:
            - name: CentOS 6
              test: centos6
            - name: CentOS 7
              test: centos7
            - name: Fedora 33
              test: fedora33
            - name: Fedora 34
              test: fedora34
            - name: openSUSE 15 py2
              test: opensuse15py2
            - name: openSUSE 15 py3
              test: opensuse15
            - name: Ubuntu 18.04
              test: ubuntu1804
            - name: Ubuntu 20.04
              test: ubuntu2004
  - stage: Docker_2_11
    displayName: Docker 2.11
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: 2.11/linux/{0}/1
          targets:
            - name: CentOS 6
              test: centos6
            - name: CentOS 7
              test: centos7
            - name: Fedora 32
              test: fedora32
            - name: Fedora 33
              test: fedora33
            - name: openSUSE 15 py2
              test: opensuse15py2
            - name: openSUSE 15 py3
              test: opensuse15
            - name: Ubuntu 18.04
              test: ubuntu1804
            - name: Ubuntu 20.04
              test: ubuntu2004
  - stage: Docker_2_10
    displayName: Docker 2.10
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: 2.10/linux/{0}/1
          targets:
            - name: CentOS 6
              test: centos6
            - name: CentOS 7
              test: centos7
            - name: Fedora 30
              test: fedora30
            - name: Fedora 31
              test: fedora31
            - name: openSUSE 15 py2
              test: opensuse15py2
            - name: openSUSE 15 py3
              test: opensuse15
            - name: Ubuntu 16.04
              test: ubuntu1604
            - name: Ubuntu 18.04
              test: ubuntu1804
  - stage: Docker_2_9
    displayName: Docker 2.9
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: 2.9/linux/{0}/1
          targets:
            - name: CentOS 6
              test: centos6
            - name: CentOS 7
              test: centos7
            - name: Fedora 30
              test: fedora30
            - name: Fedora 31
              test: fedora31
            - name: openSUSE 15 py2
              test: opensuse15py2
            - name: openSUSE 15 py3
              test: opensuse15
            - name: Ubuntu 16.04
              test: ubuntu1604
            - name: Ubuntu 18.04
              test: ubuntu1804

## Remote
  - stage: Remote_devel
    displayName: Remote devel
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: devel/{0}/1
          targets:
            - name: MacOS 12.0
              test: macos/12.0
            - name: RHEL 7.9
              test: rhel/7.9
            - name: RHEL 8.5
              test: rhel/8.5
            - name: FreeBSD 12.3
              test: freebsd/12.3
            - name: FreeBSD 13.0
              test: freebsd/13.0
  - stage: Remote_2_13
    displayName: Remote 2.13
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: 2.13/{0}/1
          targets:
            - name: MacOS 12.0
              test: macos/12.0
            - name: RHEL 7.9
              test: rhel/7.9
            - name: RHEL 8.5
              test: rhel/8.5
            - name: FreeBSD 12.3
              test: freebsd/12.3
            - name: FreeBSD 13.0
              test: freebsd/13.0
  - stage: Remote_2_12
    displayName: Remote 2.12
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: 2.12/{0}/1
          targets:
            - name: MacOS 11.1
              test: macos/11.1
            - name: RHEL 7.9
              test: rhel/7.9
            - name: RHEL 8.4
              test: rhel/8.4
            - name: FreeBSD 12.2
              test: freebsd/12.2
            - name: FreeBSD 13.0
              test: freebsd/13.0
  - stage: Remote_2_11
    displayName: Remote 2.11
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: 2.11/{0}/1
          targets:
            - name: MacOS 11.1
              test: macos/11.1
            - name: RHEL 7.9
              test: rhel/7.9
            - name: RHEL 8.3
              test: rhel/8.3
            - name: FreeBSD 11.4
              test: freebsd/11.4
            - name: FreeBSD 12.2
              test: freebsd/12.2
  - stage: Remote_2_10
    displayName: Remote 2.10
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: 2.10/{0}/1
          targets:
            - name: OS X 10.11
              test: osx/10.11
            - name: RHEL 7.9
              test: rhel/7.9
            - name: RHEL 8.2
              test: rhel/8.2
            - name: FreeBSD 11.1
              test: freebsd/11.1
            - name: FreeBSD 12.1
              test: freebsd/12.1

  - stage: Remote_2_9
    displayName: Remote 2.9
    dependsOn: []
    jobs:
      - template: templates/matrix.yml
        parameters:
          testFormat: 2.9/{0}/1
          targets:
            - name: OS X 10.11
              test: osx/10.11
            - name: RHEL 7.9
              test: rhel/7.9
            - name: RHEL 8.1
              test: rhel/8.1
            - name: FreeBSD 11.1
              test: freebsd/11.1
            - name: FreeBSD 12.0
              test: freebsd/12.0
## Finally

  - stage: Summary
    condition: succeededOrFailed()
    dependsOn:
      - Remote_2_9
      - Docker_2_9
      - Remote_2_10
      - Docker_2_10
      - Remote_2_11
      - Docker_2_11
      - Remote_2_12
      - Docker_2_12
      - Remote_2_13
      - Docker_2_13
      - Remote_devel
      - Docker_devel
    jobs:
      - template: templates/coverage.yml
