# Python Django
# Test a Django project on multiple versions of Python.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/python

trigger:
- master

pool:
  vmImage: 'Ubuntu-16.04'
strategy:
  matrix:
    Python37:
      PYTHON_VERSION: '3.7'
  maxParallel: 1

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '$(PYTHON_VERSION)'
    architecture: 'x64'

- task: PythonScript@0
  displayName: 'Export project path'
  inputs:
    scriptSource: 'inline'
    script: |
      """Search all subdirectories for `manage.py`."""
      from glob import iglob
      from os import path
      # Python >= 3.5
      manage_py = next(iglob(path.join('**', 'manage.py'), recursive=True), None)
      if not manage_py:
          raise SystemExit('Could not find a Django project')
      project_location = path.dirname(path.abspath(manage_py))
      print('Found Django project in', project_location)
      print('##vso[task.setvariable variable=projectRoot]{}'.format(project_location))

- script: |
    python -m pip install --upgrade pip setuptools wheel
    pip install -r installed_apps.txt
    pip install unittest-xml-reporting
  displayName: 'Install prerequisites'

# - script: |
#     pushd '$(projectRoot)'
#     python manage.py test --testrunner xmlrunner.extra.djangotestrunner.XMLTestRunner --no-input
#   displayName: 'Run tests'

# - task: PublishTestResults@2
#   inputs:
#     testResultsFiles: "**/TEST-*.xml"
#     testRunTitle: 'Python $(PYTHON_VERSION)'
#   condition: succeededOrFailed()


# - script: python setup.py sdist
#   displayName: 'Build sdist'

- script: | 
    cd ./api
    ls -shal
  displayName: 'Enter build folder'

- task: FtpUpload@1
  displayName: 'FTP Upload: Upload all files to server'
  inputs:
    credentialsOption: inputs
    serverUrl: 'ftp://ftp.kelubaemeka.me/'
    username: 'devs@digisave.ng'
    password: 'Digisaver2019#'
    rootDirectory: '$(Build.SourcesDirectory)'
    remoteDirectory: '/'
    filePatterns: '**' 
    preservePaths: true
    overwrite: true 