# Copyright (c) Microsoft Corporation # All rights reserved. # # MIT License # # Permission is hereby granted, free of charge, # to any person obtaining a copy of this software and associated # documentation files (the "Software"), to deal in the Software without restriction, # including without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Software, and # to permit persons to whom the Software is furnished to do so, subject to the following conditions: # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING # BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. jobs: - job: 'integration_test_pai' timeoutInMinutes: 0 steps: - script: python3 -m pip install --upgrade pip setuptools --user displayName: 'Install python tools' - script: | cd deployment/pypi echo 'building prerelease package...' make build ls $(Build.SourcesDirectory)/deployment/pypi/dist/ condition: eq( variables['build_docker_img'], 'true' ) displayName: 'build nni bdsit_wheel' - script: | source install.sh displayName: 'Install nni toolkit via source code' - script: | python3 -m pip install scikit-learn==0.20.0 --user python3 -m pip install torch==0.4.1 --user python3 -m pip install torchvision==0.2.1 --user python3 -m pip install keras==2.1.6 --user python3 -m pip install tensorflow-gpu==1.12.0 --user sudo apt-get install swig -y PATH=$HOME/.local/bin:$PATH nnictl package install --name=SMAC PATH=$HOME/.local/bin:$PATH nnictl package install --name=BOHB displayName: 'Install dependencies for integration tests in PAI mode' - script: | set -e if [ $(build_docker_img) = 'true' ] then cd deployment/pypi docker login -u $(docker_hub_user) -p $(docker_hub_pwd) echo 'updating docker file for installing nni from local...' # update Dockerfile to install NNI in docker image from whl file built in last step sed -ie 's/RUN python3 -m pip --no-cache-dir install nni/COPY .\/dist\/* .\nRUN python3 -m pip install nni-*.whl/' ../docker/Dockerfile cat ../docker/Dockerfile export IMG_TAG=`date -u +%y%m%d%H%M` echo 'build and upload docker image' docker build -f ../docker/Dockerfile -t $(test_docker_img_name):$IMG_TAG . docker push $(test_docker_img_name):$IMG_TAG export TEST_IMG=$(test_docker_img_name):$IMG_TAG cd ../../ else export TEST_IMG=$(existing_docker_img) fi echo "TEST_IMG:$TEST_IMG" cd test python3 generate_ts_config.py --ts pai --pai_host $(pai_host) --pai_user $(pai_user) --pai_pwd $(pai_pwd) --vc $(pai_virtual_cluster) \ --nni_docker_image $TEST_IMG --data_dir $(data_dir) --output_dir $(output_dir) --nni_manager_ip $(nni_manager_ip) PATH=$HOME/.local/bin:$PATH python3 config_test.py --ts pai --exclude multi_phase_batch,multi_phase_grid PATH=$HOME/.local/bin:$PATH python3 metrics_test.py displayName: 'integration test'