trigger:
  batch: true
  branches:
    include:
      - "*"
    exclude:
      - "spacy.io"
      - "nightly.spacy.io"
      - "v2.spacy.io"
  paths:
    exclude:
      - "website/*"
      - "*.md"
      - ".github/workflows/*"
pr:
  paths:
    exclude:
      - "*.md"
      - "website/docs/*"
      - "website/src/*"
      - ".github/workflows/*"

jobs:
  # Perform basic checks for most important errors (syntax etc.) Uses the config
  # defined in .flake8 and overwrites the selected codes.
  - job: "Validate"
    pool:
      vmImage: "ubuntu-latest"
    steps:
      - task: UsePythonVersion@0
        inputs:
          versionSpec: "3.7"
      - script: |
          pip install flake8==3.9.2
          python -m flake8 spacy --count --select=E901,E999,F821,F822,F823,W605 --show-source --statistics
        displayName: "flake8"

  - job: "Test"
    dependsOn: "Validate"
    strategy:
      matrix:
        # We're only running one platform per Python version to speed up builds
        Python36Linux:
          imageName: "ubuntu-latest"
          python.version: "3.6"
        #        Python36Windows:
        #          imageName: "windows-latest"
        #          python.version: "3.6"
        #        Python36Mac:
        #          imageName: "macos-latest"
        #          python.version: "3.6"
        #        Python37Linux:
        #          imageName: "ubuntu-latest"
        #          python.version: "3.7"
        Python37Windows:
          imageName: "windows-latest"
          python.version: "3.7"
        #        Python37Mac:
        #          imageName: "macos-latest"
        #          python.version: "3.7"
        #        Python38Linux:
        #          imageName: "ubuntu-latest"
        #          python.version: "3.8"
        #        Python38Windows:
        #          imageName: "windows-latest"
        #          python.version: "3.8"
        Python38Mac:
          imageName: "macos-latest"
          python.version: "3.8"
        Python39Linux:
          imageName: "ubuntu-latest"
          python.version: "3.9"
        #        Python39Windows:
        #          imageName: "windows-latest"
        #          python.version: "3.9"
        #        Python39Mac:
        #          imageName: "macos-latest"
        #          python.version: "3.9"
        Python310Linux:
          imageName: "ubuntu-latest"
          python.version: "3.10"
        Python310Windows:
          imageName: "windows-latest"
          python.version: "3.10"
        Python310Mac:
          imageName: "macos-latest"
          python.version: "3.10"
      maxParallel: 4
    pool:
      vmImage: $(imageName)
    steps:
      - template: .github/azure-steps.yml
        parameters:
          python_version: '$(python.version)'
          architecture: 'x64'

#  - job: "TestGPU"
#    dependsOn: "Validate"
#    strategy:
#      matrix:
#        Python38LinuxX64_GPU:
#          python.version: '3.8'
#    pool:
#      name: "LinuxX64_GPU"
#    steps:
#      - template: .github/azure-steps.yml
#        parameters:
#          python_version: '$(python.version)'
#          architecture: 'x64'
#          gpu: true
#          num_build_jobs: 24