
jobs:
- job: 'Build_upload_nni_ubuntu'
  pool:
    vmImage: 'Ubuntu 16.04'
  strategy:
    matrix:
      Python36:
        PYTHON_VERSION: '3.6'

  steps:
  - script: |
      python3 -m pip install --upgrade pip setuptools --user
      python3 -m pip install twine --user
    displayName: 'Install twine'
  - script: |
      # NNI build scripts (Makefile) uses branch tag as package version number
      # To test this pipeline without impacting nni testpypi/pypi packages, uncomment following git tag command
      # git tag v0.0.1
      cd deployment/pypi
      if [ $(build_type) = 'prerelease' ]
      then
        echo 'building prerelease package...'
        make version_ts=true build
      else
        echo 'building release package...'
        make build
      fi

    displayName: 'build nni bdsit_wheel'
  - script: |
      cd deployment/pypi
      if [ $(build_type) = 'prerelease' ]
      then
        echo 'uploading prerelease package to testpypi...'
        python3 -m twine upload -u $(testpypi_user) -p $(testpypi_pwd) --repository-url https://test.pypi.org/legacy/ dist/*
      else
        echo 'uploading release package to pypi...'
        python3 -m twine upload -u $(pypi_user) -p $(pypi_pwd) dist/*
      fi
    displayName: 'upload nni package to pypi/testpypi'

  - script: |
      export IMG_TAG=`git describe --tags --abbrev=0`
      cd deployment/docker
      docker login -u $(docker_hub_user) -p $(docker_hub_pwd)

      if [ $(build_type) = 'prerelease' ]
      then
        echo 'updating docker file for testpyi...'
        sed -ie 's/RUN python3 -m pip --no-cache-dir install nni/RUN python3 -m pip install --user --no-cache-dir --index-url https:\/\/test.pypi.org\/simple\/ --extra-index-url https:\/\/pypi.org\/simple nni/' Dockerfile
      fi
      echo $IMG_TAG
      docker build -f Dockerfile -t msranni/nni:$IMG_TAG .
      docker push msranni/nni:$IMG_TAG
    displayName: 'build and upload nni docker image'

- job: 'Build_upload_nni_macos'
  pool:
    vmImage: 'macOS 10.13'
  strategy:
    matrix:
      Python36:
        PYTHON_VERSION: '3.6'
  steps:
  - script: |
      python3 -m pip install --upgrade pip setuptools --user
      python3 -m pip install twine --user
    displayName: 'Install twine'
  - script: |
      make install-dependencies
    displayName: 'Install nni dependencies'
  - script: |
      # NNI build scripts (Makefile) uses branch tag as package version number
      # To test this pipeline without impacting nni testpypi/pypi packages, uncomment following git tag command
      # git tag v0.0.1
      cd deployment/pypi
      if [ $(build_type) = 'prerelease' ]
      then
        echo 'building prerelease package...'
        PATH=$HOME/Library/Python/3.7/bin:$PATH make version_ts=true build
      else
        echo 'building release package...'
        PATH=$HOME/Library/Python/3.7/bin:$PATH make build
      fi

    displayName: 'build nni bdsit_wheel'
  - script: |
      cd deployment/pypi
      if [ $(build_type) = 'prerelease' ]
      then
        echo 'uploading prerelease package to testpypi...'
        python3 -m twine upload -u $(testpypi_user) -p $(testpypi_pwd) --repository-url https://test.pypi.org/legacy/ dist/*
      else
        echo 'uploading release package to pypi...'
        python3 -m twine upload -u $(pypi_user) -p $(pypi_pwd) dist/*
      fi
    displayName: 'upload nni package to pypi/testpypi'
