nni/pipelines/fast-test.yml

236 строки
6.6 KiB
YAML
Исходник Обычный вид История

trigger: none
stages:
- stage: lint
jobs:
- job: docs
pool:
vmImage: ubuntu-latest
steps:
- template: templates/install-dependencies.yml
parameters:
platform: ubuntu-latest
- script: |
sudo apt-get install -y pandoc
displayName: Install pandoc
- script: |
cd docs
2022-04-01 12:31:16 +03:00
rstcheck -r source \
2022-04-03 12:43:28 +03:00
--ignore-directives automodule,autoclass,autofunction,cardlinkitem,codesnippetcard,argparse,tabs \
2022-04-01 12:31:16 +03:00
--ignore-roles githublink --ignore-substitutions release \
--report warning
displayName: rstcheck
- script: |
cd docs
make -e SPHINXOPTS="-W --keep-going -T -q" html
displayName: Sphinx sanity check
- script: |
set -e
cd docs
rm -rf build
sudo apt-get install -y gettext
python tools/translation_patch.py
make -e SPHINXOPTS="-W --keep-going -T -q -D language='zh'" html
displayName: Sphinx sanity check (Chinese)
- script: |
cd docs
python tools/chineselink.py check
displayName: Translation up-to-date
- job: python
pool:
vmImage: ubuntu-latest
steps:
- template: templates/install-dependencies.yml
parameters:
platform: ubuntu-latest
- script: |
# pylint requires newer typing extension. Override requirements in tensorflow
python -m pip install "typing-extensions>=3.10"
displayName: Resolve dependency version
- script: |
python -m pylint --rcfile pylintrc nni
displayName: pylint
- script: |
set -e
python -m flake8 nni --count --select=E9,F63,F72,F82 --show-source --statistics
EXCLUDES=examples/trials/mnist-nas/*/mnist*.py,examples/trials/nas_cifar10/src/cifar10/general_child.py
python -m flake8 examples --count --exclude=$EXCLUDES --select=E9,F63,F72,F82 --show-source --statistics
displayName: flake8
2022-03-24 18:37:05 +03:00
- script: |
python -m pyright nni
2022-03-25 12:13:22 +03:00
displayName: Type Check
2022-03-24 18:37:05 +03:00
- job: typescript
pool:
vmImage: ubuntu-latest
steps:
- template: templates/install-dependencies.yml
parameters:
platform: ubuntu-latest
- script: |
set -e
yarn --cwd ts/nni_manager
yarn --cwd ts/nni_manager eslint
displayName: ESLint (NNI Manager)
- script: |
set -e
yarn --cwd ts/webui
2022-02-10 07:55:46 +03:00
yarn --cwd ts/webui sanity-check
displayName: Sanity check (WebUI)
# To reduce debug cost, steps are sorted differently on each platform,
# so that a bug in any module will cause at least one platform to fail quickly.
- stage: test
jobs:
- job: ubuntu_latest
pool:
vmImage: ubuntu-latest
steps:
- template: templates/install-dependencies.yml
parameters:
platform: ubuntu-latest
- script: |
python setup.py develop
echo "##vso[task.setvariable variable=PATH]${HOME}/.local/bin:${PATH}"
displayName: Install NNI
- script: |
set -e
mkdir -p coverage
cd test
python -m pytest ut --cov-config=.coveragerc \
--ignore=ut/compression/v1/test_pruners.py \
--ignore=ut/compression/v1/test_compressor_tf.py \
--ignore=ut/compression/v1/test_compressor_torch.py \
--ignore=ut/compression/v1/test_model_speedup.py
python -m pytest ut/compression/v1/test_pruners.py --cov-config=.coveragerc --cov-append
python -m pytest ut/compression/v1/test_compressor_tf.py --cov-config=.coveragerc --cov-append
python -m pytest ut/compression/v1/test_compressor_torch.py --cov-config=.coveragerc --cov-append
python -m pytest ut/compression/v1/test_model_speedup.py --cov-config=.coveragerc --cov-append
cp coverage.xml ../coverage/python.xml
displayName: Python unit test
- script: |
yarn --cwd ts/nni_manager test
cp ts/nni_manager/coverage/cobertura-coverage.xml coverage/typescript.xml
displayName: TypeScript unit test
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: '$(System.DefaultWorkingDirectory)/**/test-*.xml'
testRunTitle: 'Publish test results for Python $(python.version)'
displayName: Publish test results
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: coverage/*
displayName: Publish code coverage results
- script: |
cd test
python nni_test/nnitest/run_tests.py --config config/pr_tests.yml
displayName: Simple integration test
- job: ubuntu_legacy
pool:
vmImage: ubuntu-18.04
steps:
- template: templates/install-dependencies.yml
parameters:
platform: ubuntu-legacy
- script: |
python setup.py develop
echo "##vso[task.setvariable variable=PATH]${HOME}/.local/bin:${PATH}"
displayName: Install NNI
- script: |
cd test
python nni_test/nnitest/run_tests.py --config config/pr_tests.yml
displayName: Simple integration test
- script: |
cd test
python -m pytest ut --ignore=ut/retiarii/test_convert_basic.py \
--ignore=ut/retiarii/test_convert_operators.py \
--ignore=ut/retiarii/test_convert_pytorch.py
displayName: Python unit test
- script: |
yarn --cwd ts/nni_manager test
displayName: TypeScript unit test
- job: windows
pool:
vmImage: windows-latest
2022-02-28 08:59:49 +03:00
timeoutInMinutes: 75
steps:
- template: templates/install-dependencies.yml
parameters:
platform: windows
- script: |
python setup.py develop --no-user
displayName: Install NNI
- script: |
cd test
python -m pytest ut
displayName: Python unit test
- script: |
yarn --cwd ts/nni_manager test
displayName: TypeScript unit test
- script: |
cd test
python nni_test/nnitest/run_tests.py --config config/pr_tests.yml
displayName: Simple integration test
- job: macos
pool:
vmImage: macOS-latest
steps:
- template: templates/install-dependencies.yml
parameters:
platform: macos
- script: |
python setup.py develop
echo "##vso[task.setvariable variable=PATH]${HOME}/.local/bin:${PATH}"
displayName: Install NNI
- script: |
CI=true yarn --cwd ts/nni_manager test --exclude test/core/nnimanager.test.ts
displayName: TypeScript unit test
2021-12-14 06:28:56 +03:00
- script: |
cd test
python -m pytest ut
displayName: Python unit test
- script: |
cd test
python nni_test/nnitest/run_tests.py --config config/pr_tests.yml
displayName: Simple integration test