parameters:
  action: 'fly'

jobs:
- job: sitl_${{ parameters.name }}_test
  displayName: ${{ format('Cygwin SITL {0} test', parameters.name) }}
  pool:
    vmImage: 'win1803'
  condition: eq(variables['Build.Reason'], 'Schedule')
  steps:
  - script: choco install cygwin --params "/InstallDir:C:\Cygwin /NoStartMenu /NoAdmin"
    displayName: 'Install Cygwin'
  - script: choco install gcc-g++ python2 python27 python27-devel python27-future python27-lxml python27-pip python27-pexpect python27-numpy git gettext libcrypt-devel --source cygwin
    displayName: 'Install Cygwin packages'
  - script: git submodule update --recursive --init modules/mavlink
    displayName: Initialize MAVLink submodule
  - script: C:\Cygwin\bin\bash --login -c "cd $(cygpath '%BUILD_SOURCESDIRECTORY%')/modules/mavlink/pymavlink && python setup.py build install --user"
    displayName: 'Install pymavlink from submodule'
  - script: C:\Cygwin\bin\bash --login -c "pip2 install MAVProxy"
    displayName: 'Install MAVProxy in Cygwin'
  - script: C:\Cygwin\bin\bash --login -c "cd $(cygpath '%BUILD_SOURCESDIRECTORY%') && Tools/autotest/autotest.py ${{ format('build.{0} {1}.{2}', parameters.build_target, parameters.action, parameters.action_target) }}"
    displayName: ${{ format('Run {0} autotest', parameters.name) }}
  - script: C:\Cygwin\bin\bash --login -c "cd $(cygpath '%BUILD_SOURCESDIRECTORY%') && cp $(cygcheck.exe build/sitl/bin/* | grep Cygwin | grep -v '.exe' | sed 's/^[ \t]*//' | sort | uniq) build/sitl/bin/"
    displayName: 'Copy dependencies to build dir'
  - task: PublishBuildArtifacts@1
#  - task: PublishPipelineArtifact@0
    displayName: 'Publish build artifacts'
    inputs:
      artifactName: 'Cygwin SITL binaries'
      pathtoPublish: 'build/sitl/bin'
#      targetPath: 'build/sitl/bin'
  - task: PublishBuildArtifacts@1
#  - task: PublishPipelineArtifact@0
    displayName: 'Publish test folder'
    inputs:
      artifactName: ${{ format('{0} Test folder', parameters.name) }}
      pathtoPublish: ${{ format('test.{0}', parameters.action_target) }}
#      targetPath: ${{ format('test.{0}', parameters.action_target) }}
  - task: PublishBuildArtifacts@1
#  - task: PublishPipelineArtifact@0
    displayName: 'Publish logs'
    inputs:
      artifactName: ${{ format('{0} Logs', parameters.name) }}
      pathtoPublish: '../buildlogs'
#      targetPath: '../buildlogs'