trigger: none

schedules:
- cron: 0 18 * * *
  branches:
    include: [ master ]
  always: true

resources:
  repositories:
    - repository: azpfilter
      type: github
      name: microsoft/azure-pipeline-filter
      endpoint: github-filter-connection

variables:
  filter.modified.globs: 'examples/nas/**,nni/algorithms/nas/**,nni/nas/**,nni/retiarii/**,pipelines/full-test-nas.yml,test/ut/nas/**,test/algo/nas/**'
  filter.prbody.heading: '#### Test Options'
  filter.prbody.optionIndex: 2

stages:
- stage: filter
  jobs:
  - job: check
    pool:
      vmImage: ubuntu-latest
    steps:
    - template: templates/stage-filter.yml

- stage: test
  # dependencies.$(StageName).outputs['$(JobName).$(TaskName).$(VariableName)']
  condition: and(succeeded(), ne(dependencies.filter.outputs['check.execution.skipsubsequent'], 'true'))
  jobs:
  - job: linux
    pool: nni-it-1es-11
    timeoutInMinutes: 90

    steps:
    - template: templates/check-gpu-status.yml

    - template: templates/install-dependencies.yml
      parameters:
        platform: ubuntu-latest-gpu
        python_env: venv

    - template: templates/install-nni.yml

    - template: templates/download-test-data.yml

    - script: |
        cd test
        python -m pytest algo/nas
      displayName: NAS test

  - job: windows
    pool: nni-it-1es-windows
    timeoutInMinutes: 90

    steps:
    - template: templates/check-gpu-status.yml
      parameters:
        platform: windows

    - template: templates/install-dependencies.yml
      parameters:
        platform: windows-gpu
        python_env: noop

    - template: templates/install-nni.yml
      parameters:
        user: false

    - template: templates/download-test-data.yml
      parameters:
        platform: windows

    - powershell: |
        python test/vso_tools/ssl_patch.py
      displayName: SSL patch

    - powershell: |
        cd test
        python -m pytest algo/nas
      displayName: NAS test
