platform: x64
environment:
 matrix:
  - DC: dmd
    DVersion: 2.080.0
    arch: x64
    config: vibe-core
  - DC: dmd
    DVersion: 2.080.0
    arch: x86_mscoff
    config: vibe-core
  - DC: dmd
    DVersion: 2.080.0
    arch: x86
    config: win32
  - DC: dmd
    DVersion: 2.079.1
    arch: x86
    config: win32
  - DC: dmd
    DVersion: 2.078.3
    arch: x86
    config: win32
  - DC: dmd
    DVersion: 2.077.1
    arch: x86_mscoff
    config: win32
  - DC: dmd
    DVersion: 2.076.1
    arch: x86_mscoff
    config: win32
  - DC: dmd
    DVersion: 2.075.1
    arch: x86_mscoff
    config: win32
  - DC: dmd
    DVersion: 2.074.1
    arch: x86_mscoff
    config: win32
  - DC: ldc
    DVersion: 1.9.0
    arch: x86
    config: vibe-core
  - DC: ldc
    DVersion: 1.8.0
    arch: x64
    config: vibe-core
  - DC: ldc
    DVersion: 1.7.0
    arch: x64
    config: vibe-core
  - DC: ldc
    DVersion: 1.6.0
    arch: x64
    config: vibe-core
  - DC: ldc
    DVersion: 1.5.0
    arch: x86
    config: vibe-core
  - DC: ldc
    DVersion: 1.4.0
    arch: x64
    config: vibe-core

branches:
  only:
    - master
    - 0.7.x
skip_tags: true

services:
  - mongodb

install:
  - ps: function SetUpDCompiler
        {
            if($env:DC -eq "dmd"){
              if($env:arch -eq "x86"){
                $env:DConf = "m32";
              }
              elseif($env:arch -eq "x64"){
                $env:DConf = "m64";
              }
              echo "downloading ...";
              $env:toolchain = "msvc";
              $version = $env:DVersion;
              Invoke-WebRequest "http://downloads.dlang.org/releases/2.x/$($version)/dmd.$($version).windows.7z" -OutFile "c:\dmd.7z";
              echo "finished.";
              pushd c:\\;
              7z x dmd.7z > $null;
              popd;
            }
            elseif($env:DC -eq "ldc"){
              echo "downloading ...";
              if($env:arch -eq "x86"){
                $env:DConf = "m32";
              }
              elseif($env:arch -eq "x64"){
                $env:DConf = "m64";
              }
              $env:toolchain = "msvc";
              $version = $env:DVersion;
              if($version -eq "1.3.0" -Or $version -eq "1.4.0" -Or $version -eq "1.5.0" -Or $version -eq "1.6.0") {
                Invoke-WebRequest "https://github.com/ldc-developers/ldc/releases/download/v$($version)/ldc2-$($version)-win64-msvc.zip" -OutFile "c:\ldc.zip";
                echo "finished.";
                pushd c:\\;
                7z x ldc.zip > $null;
                popd;
              } else {
                Invoke-WebRequest "https://github.com/ldc-developers/ldc/releases/download/v$($version)/ldc2-$($version)-windows-$($env:arch).7z" -OutFile "c:\ldc.7z";
                pushd c:\\;
                7z x ldc.7z > $null;
                popd;
              }
            }
        }
  - ps: SetUpDCompiler
  - powershell -Command [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest "https://github.com/dlang/dub/releases/download/v1.7.2/dub-1.7.2-windows-x86.zip" -OutFile dub.zip
  - 7z x dub.zip -odub > nul
  - set PATH=%CD%\%binpath%;%CD%\dub;%PATH%
  - dub --version

before_build:
  - ps: if($env:arch -eq "x86"){
            $env:compilersetupargs = "x86";
            $env:Darch = "x86";
          }
        elseif($env:arch -eq "x86_mscoff"){
            $env:compilersetupargs = "x86";
            $env:Darch = "x86_mscoff";
        }
        elseif($env:arch -eq "x64"){
            $env:compilersetupargs = "amd64";
            $env:Darch = "x86_64";
        }
  - ps : if($env:DC -eq "dmd"){
           $env:PATH += ";C:\dmd2\windows\bin;";
         }
         elseif($env:DC -eq "ldc"){
           $version = $env:DVersion;
           if($version -eq "1.3.0" -Or $version -eq "1.4.0" -Or $version -eq "1.5.0" -Or $version -eq "1.6.0") {
               $env:PATH += ";C:\ldc2-$($version)-win64-msvc\bin";
           } else {
               $env:PATH += ";C:\ldc2-$($version)-windows-$($env:arch)\bin";
           }
           $env:DC = "ldc2";
         }
  - ps: $env:compilersetup = "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall";
  - '"%compilersetup%" %compilersetupargs%'

build_script:
 - echo dummy build script - don't remove me

test_script:
 - echo %PLATFORM%
 - echo %Darch%
 - echo %DC%
 - echo %PATH%
 - '%DC% --version'
 - dub test :utils --arch=%Darch% --compiler=%DC%
 - dub test :data --arch=%Darch% --compiler=%DC%
 - dub test :core --arch=%Darch% --compiler=%DC% --config=%CONFIG%
 - dub test :stream --arch=%Darch% --compiler=%DC% --override-config=vibe-d:core/%CONFIG%
 - dub test :crypto --arch=%Darch% --compiler=%DC% --override-config=vibe-d:core/%CONFIG%
 - dub test :tls --arch=%Darch% --compiler=%DC% --override-config=vibe-d:core/%CONFIG%
 - dub test :textfilter --arch=%Darch% --compiler=%DC% --override-config=vibe-d:core/%CONFIG%
 - dub test :inet --arch=%Darch% --compiler=%DC% --override-config=vibe-d:core/%CONFIG%
 - dub test :mail --arch=%Darch% --compiler=%DC% --override-config=vibe-d:core/%CONFIG%
 - dub test :http --arch=%Darch% --compiler=%DC% --override-config=vibe-d:core/%CONFIG%
 - dub test :mongodb --arch=%Darch% --compiler=%DC% --override-config=vibe-d:core/%CONFIG%
 - dub test :redis --arch=%Darch% --compiler=%DC% --override-config=vibe-d:core/%CONFIG%
 - dub test :web --arch=%Darch% --compiler=%DC% --override-config=vibe-d:core/%CONFIG%
 - echo TODO - run the test suite
