parameters:
- name: architecture
  type: string
- name: compilerPath
  type: string
- name: vcpkgTriplet
  type: string
- name: vcvarsPath
  type: string

steps:
- task: Cache@2
  inputs:
    key: '"vcpkg-manifest" | "$(Agent.OS)" | "${{parameters.vcpkgTriplet}}" | C:/vcpkg/.git/refs/heads/master'
    path: '$(Build.BinariesDirectory)/vcpkg_installed'
  displayName: 'Environment storage'
- script: '$(Build.SourcesDirectory)/.ci/azure-pipelines/windows_build.bat'
  env:
    ARCHITECTURE: ${{parameters.architecture}}
    COMPILER_PATH: ${{parameters.compilerPath}}
    VCPKG_TRIPLET: ${{parameters.vcpkgTriplet}}
    VCVARS_PATH: ${{parameters.vcvarsPath}}
    SE_BUILD_NUMBER_TOKEN: $(BUILD_NUMBER_TOKEN)
  displayName: 'Build'
- powershell: |
    . .ci/appveyor-vpntest.ps1
  displayName: 'Test'
- task: CopyFiles@2
  inputs:
    sourceFolder: '$(Build.BinariesDirectory)'
    contents: '?(*.exe|*.se2|*.pdb)'
    TargetFolder: '$(Build.StagingDirectory)/binaries'
    flattenFolders: true
- task: PublishBuildArtifacts@1
  inputs:
    pathtoPublish: '$(Build.StagingDirectory)/binaries'
    artifactName: 'Binaries'
- task: PublishBuildArtifacts@1
  inputs:
    pathtoPublish: '$(Build.StagingDirectory)/installers'
    artifactName: 'Installers'
