pool:
  # self-hosted agent on Windows 10 1709 environment
  # includes newer Docker engine with LCOW enabled, new build of LCOW image
  # includes Ruby 2.5, Go 1.10, Node.js 10.10, hadolint
  name: Default

variables:
  BUILD_REPOSITORY: 127.0.0.1

steps:
- powershell: |
    $line = '=' * 80
    Write-Host "$line`nWindows`n$line`n"
    Get-ComputerInfo |
      select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer |
      Out-String |
      Write-Host
    #
    # Azure
    #
    Write-Host "`n`n$line`nAzure`n$line`n"
    Invoke-RestMethod -Headers @{'Metadata'='true'} -URI http://169.254.169.254/metadata/instance?api-version=2017-12-01 -Method Get |
      ConvertTo-Json -Depth 10 |
      Write-Host
    #
    # Docker
    #
    Write-Host "`n`n$line`nDocker`n$line`n"
    docker version
    docker images
    docker info
    sc.exe qc docker
    #
    # Ruby
    #
    Write-Host "`n`n$line`nRuby`n$line`n"
    ruby --version
    gem --version
    bundle --version
    #
    # Environment
    #
    Write-Host "`n`n$line`nEnvironment`n$line`n"
    Get-ChildItem Env: | % { Write-Host "$($_.Key): $($_.Value)"  }
  displayName: Diagnostic Host Information
  name: hostinfo
- powershell: |
    . ./docker/ci/build.ps1
    Invoke-ContainerBuildSetup
  displayName: Prepare Build Environment
  name: build_prepare
- powershell: |
    . ./docker/ci/build.ps1
    Build-Container -Name r10k -Repository $ENV:BUILD_REPOSITORY
  displayName: Build r10k
  name: build_r10k
- powershell: |
    . ./docker/ci/build.ps1
    Invoke-ContainerTest -Name r10k -Repository $ENV:BUILD_REPOSITORY
  displayName: Test r10k
  name: test_r10k
- task: PublishTestResults@2
  displayName: Publish r10k test results
  inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: 'docker/**/TEST-*.xml'
    testRunTitle: r10k Test Results
- powershell: |
    . ./docker/ci/build.ps1
    Clear-ContainerBuilds
  displayName: Container Cleanup
  condition: always()