1image:
2    - Visual Studio 2017
3
4platform:
5    - x64
6    - x86
7
8environment:
9    fast_finish: true
10    matrix:
11        - VSVER: 15
12
13configuration:
14    - shared
15    - minimal
16
17for:
18    -
19        branches:
20            only:
21                - master
22        configuration:
23            - shared
24            - plain
25            - minimal
26
27before_build:
28    - ps: >-
29        Install-Module VSSetup -Scope CurrentUser
30    - ps: >-
31        Get-VSSetupInstance -All
32    - ps: >-
33        If ($env:Platform -Match "x86") {
34            $env:VCVARS_PLATFORM="x86"
35            $env:TARGET="VC-WIN32 no-asm --strict-warnings"
36        } Else {
37            $env:VCVARS_PLATFORM="amd64"
38            $env:TARGET="VC-WIN64A-masm"
39        }
40    - ps: >-
41        If ($env:Configuration -Match "shared") {
42            $env:CONFIG_OPTS="enable-fips"
43        } ElseIf ($env:Configuration -Match "minimal") {
44            $env:CONFIG_OPTS="no-bulk no-asm -DOPENSSL_SMALL_FOOTPRINT"
45        } Else {
46            $env:CONFIG_OPTS="no-fips no-shared"
47        }
48    - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %VCVARS_PLATFORM%
49    - mkdir _build
50    - cd _build
51    - perl ..\Configure %TARGET% no-makedepend %CONFIG_OPTS%
52    - perl configdata.pm --dump
53    - cd ..
54    - ps: >-
55        If ($env:BUILDONLY -or $env:MAKEVERBOSE) {
56            $env:NMAKE="nmake"
57        } Else {
58            $env:NMAKE="nmake /S"
59        }
60    - ps: >-
61        gci env:* | sort-object name
62
63build_script:
64    - cd _build
65    - "%NMAKE% build_all_generated"
66    - "%NMAKE% PERL=no-perl"
67    - cd ..
68
69test_script:
70    - cd _build
71    - ps: >-
72        if ($env:Configuration -Match "plain") {
73            cmd /c "%NMAKE% test VERBOSE_FAILURE=yes 2>&1"
74        } Else {
75            cmd /c "%NMAKE% test VERBOSE_FAILURE=yes TESTS=-test_fuzz 2>&1"
76        }
77    - ps: >-
78        if ($env:Configuration -Match "shared") {
79            mkdir ..\_install
80            cmd /c "%NMAKE% install DESTDIR=..\_install 2>&1"
81        }
82    - cd ..
83