# Docs see here:
# https://aka.ms/yaml


variables:
  vcpkg_cache: C:/vcpkg/installed

jobs:
- job: 'win_vs2017'
  displayName: 'Windows (VS2017)'
  pool:
    vmImage: 'vs2017-win2016'
  variables:
    CC_NAME: Visual Studio 15 2017
    CC_SHORTNAME: VS2017
    GENERATOR: Visual Studio 15 2017
    FORCE_CXX: OFF
  steps:
  - checkout: self
    submodules: recursive

  - task: CacheBeta@0
    inputs:
      key: $(Build.SourcesDirectory)/tools/azure-devops/install.ps1
      path: $(vcpkg_cache)
    displayName: Cache vcpkg

  - powershell: ./tools/azure-devops/install.ps1
    displayName: Install Requirements
  - powershell: ./tools/azure-devops/build.ps1
    displayName: "Build: $(CC_NAME)"

  - task: PublishBuildArtifacts@1
    inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: open62541-$(CC_SHORTNAME)
        # publishing artifacts from PRs from a fork is currently blocked
    condition: succeeded()
    displayName: "Publish Artifact: open62541-$(CC_SHORTNAME)"


- job: 'win_msys64'
  displayName: 'Windows (msys64)'
  pool:
    vmImage: 'windows-latest'
  variables:
    CC_NAME: MinGW Makefiles
    CC_SHORTNAME: mingw
    GENERATOR: MinGW Makefiles
    FORCE_CXX: OFF
    MSYS2_ROOT: C:/msys64
  steps:
  - checkout: self
    submodules: recursive

  - powershell: ./tools/azure-devops/install.ps1
    displayName: Install Requirements
  - powershell: ./tools/azure-devops/build.ps1
    displayName: "Build: $(CC_NAME)"
    errorActionPreference: continue # If set to Stop, we only get a truncated exception message. Error is handled by checking exit code


  - task: PublishBuildArtifacts@1
    inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: open62541-$(CC_SHORTNAME)
        # publishing artifacts from PRs from a fork is currently blocked
    condition: succeeded()
    displayName: "Publish Artifact: open62541-$(CC_SHORTNAME)"



- job: 'win_clang'
  displayName: 'Windows (clang)'
  pool:
    vmImage: 'windows-latest'
  variables:
    CC_NAME: Clang
    CC_SHORTNAME: clang-mingw
    GENERATOR: MinGW Makefiles
    FORCE_CXX: OFF
    MSYS2_ROOT: C:/msys64
  steps:
  - checkout: self
    submodules: recursive

  - powershell: ./tools/azure-devops/install.ps1
    displayName: Install Requirements
  - powershell: ./tools/azure-devops/build.ps1
    displayName: "Build: $(CC_NAME)"
    errorActionPreference: continue # If set to Stop, we only get a truncated exception message. Error is handled by checking exit code

  - task: PublishBuildArtifacts@1
    inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: open62541-$(CC_SHORTNAME)
        # publishing artifacts from PRs from a fork is currently blocked
    condition: succeeded()
    displayName: "Publish Artifact: open62541-$(CC_SHORTNAME)"
