parameters:
  vmImage:

jobs:
- job: Test_Primary
  displayName: Test Primary

  pool:
    vmImage: ${{ parameters.vmImage }}
  strategy:
    matrix:
      Python27-x86:
        python.version: '2.7'
        python.architecture: x86
      Python27-x64:
        python.version: '2.7'
        python.architecture: x64
        useVenv: true
      Python35-x64:
        python.version: '3.5'
        python.architecture: x64
      Python36-x64:
        python.version: '3.6'
        python.architecture: x64
        useVenv: true
      Python37-x64:
        python.version: '3.7'
        python.architecture: x64
      Python38-x64:
        python.version: '3.8'
        python.architecture: x64
    maxParallel: 6

  steps:
  - template: ../steps/run-tests-windows.yml
    parameters:
      runIntegrationTests: true
      useVenv: '$(useVenv)'

- job: Test_Secondary
  displayName: Test Secondary
  # Don't run integration tests for these runs
  # 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:
      # This is for Windows, so test x86 builds
      Python35-x86:
        python.version: '3.5'
        python.architecture: x86
      Python36-x86:
        python.version: '3.6'
        python.architecture: x86
      Python37-x86:
        python.version: '3.7'
        python.architecture: x86
      Python38-x86:
        python.version: '3.8'
        python.architecture: x86
    maxParallel: 6

  steps:
  - template: ../steps/run-tests-windows.yml
    parameters:
      runIntegrationTests: false
