jobs:
  - job: installer_build
    pool:
      vmImage: vs2017-win2016
    steps:
      - task: UsePythonVersion@0
        inputs:
          versionSpec: 3.7
          architecture: x86
          addToPath: true
      - script: python windows-installer/construct.py
        displayName: Build Certbot installer
      - task: CopyFiles@2
        inputs:
          sourceFolder: $(System.DefaultWorkingDirectory)/windows-installer/build/nsis
          contents: '*.exe'
          targetFolder: $(Build.ArtifactStagingDirectory)
      - task: PublishPipelineArtifact@1
        inputs:
          path: $(Build.ArtifactStagingDirectory)
          artifact: windows-installer
        displayName: Publish Windows installer
  - job: installer_run
    dependsOn: installer_build
    strategy:
      matrix:
        win2019:
          imageName: windows-2019
        win2016:
          imageName: vs2017-win2016
        win2012r2:
          imageName: vs2015-win2012r2
    pool:
      vmImage: $(imageName)
    steps:
      - task: DownloadPipelineArtifact@2
        inputs:
          artifact: windows-installer
          path: $(Build.SourcesDirectory)/bin
        displayName: Retrieve Windows installer
      - script: $(Build.SourcesDirectory)\bin\certbot-beta-installer-win32.exe /S
        displayName: Install Certbot
      - powershell: Invoke-WebRequest https://www.python.org/ftp/python/3.8.0/python-3.8.0-amd64-webinstall.exe -OutFile C:\py3-setup.exe
        displayName: Get Python
      - script: C:\py3-setup.exe /quiet PrependPath=1 InstallAllUsers=1 Include_launcher=1 InstallLauncherAllUsers=1 Include_test=0 Include_doc=0 Include_dev=1 Include_debug=0 Include_tcltk=0 TargetDir=C:\py3
        displayName: Install Python
      - script: |
          py -3 -m venv venv
          venv\Scripts\python tools\pip_install.py -e certbot-ci
        displayName: Prepare Certbot-CI
      - script: |
          set PATH=%ProgramFiles(x86)%\Certbot\bin;%PATH%
          venv\Scripts\python -m pytest certbot-ci\certbot_integration_tests\certbot_tests -n 4
        displayName: Run integration tests
