parameters:
  vmImage:

jobs:
- job: Test_Primary
  displayName: Test Primary

  pool:
    vmImage: ${{ parameters.vmImage }}
  strategy:
    matrix:
      Python27:
        python.version: '2.7'
        python.architecture: x64
      Python36:
        python.version: '3.6'
        python.architecture: x64
    maxParallel: 2

  steps:
  - template: ../steps/run-tests.yml

- job: Test_Secondary
  displayName: Test Secondary
  # Run after Test_Primary so we don't devour time and jobs if tests are going to fail
  dependsOn: Test_Primary

  pool:
    vmImage: ${{ parameters.vmImage }}
  strategy:
    matrix:
      Python35:
        python.version: '3.5'
        python.architecture: x64
      Python37:
        python.version: '3.7'
        python.architecture: x64
    maxParallel: 3

  steps:
  - template: ../steps/run-tests.yml

parameters:
  vmImage:

jobs:
- job: Test_Primary
  displayName: Test Primary

  pool:
    vmImage: ${{ parameters.vmImage }}
  strategy:
    matrix:
      Python27:
        python.version: '2.7'
        python.architecture: x64
      Python36:
        python.version: '3.6'
        python.architecture: x64
    maxParallel: 2

  steps:
  - template: ../steps/run-tests.yml

- job: Test_Secondary
  displayName: Test Secondary
  # Run after Test_Primary so we don't devour time and jobs if tests are going to fail
  dependsOn: Test_Primary

  pool:
    vmImage: ${{ parameters.vmImage }}
  strategy:
    matrix:
      Python35:
        python.version: '3.5'
        python.architecture: x64
      Python37:
        python.version: '3.7'
        python.architecture: x64
      Python38:
        python.version: '3.8'
        python.architecture: x64
    maxParallel: 4

  steps:
  - template: ../steps/run-tests.yml

Test Linux and macOS on Python 3.8
Test Linux and macOS on Python 3.8
