Fix custom EVP_PKEY_METHOD implementations where no engine is present
[openssl.git] / appveyor.yml
index 46eaf3978beb1124f7372448b80f5d8ed024c186..9bb6f04e0a44cb0df6c81e4bc373fb61f7cc69ac 100644 (file)
@@ -1,44 +1,82 @@
+image:
+    - Visual Studio 2017
+
 platform:
-    - x86
     - x64
+    - x86
 
 environment:
+    fast_finish: true
     matrix:
-        - VSVER: 14
+        - VSVER: 15
 
 configuration:
-    - plain
     - shared
+    - minimal
+
+for:
+    -
+        branches:
+            only:
+                - master
+        configuration:
+            - shared
+            - plain
+            - minimal
 
 before_build:
+    - ps: >-
+        Install-Module VSSetup -Scope CurrentUser
+    - ps: >-
+        Get-VSSetupInstance -All
     - ps: >-
         If ($env:Platform -Match "x86") {
             $env:VCVARS_PLATFORM="x86"
-            $env:TARGET="VC-WIN32"
+            $env:TARGET="VC-WIN32 no-asm --strict-warnings"
         } Else {
             $env:VCVARS_PLATFORM="amd64"
-            $env:TARGET="VC-WIN64A"
+            $env:TARGET="VC-WIN64A-masm"
         }
     - ps: >-
         If ($env:Configuration -Match "shared") {
-            $env:SHARED=""
+            $env:CONFIG_OPTS="enable-fips"
+        } ElseIf ($env:Configuration -Match "minimal") {
+            $env:CONFIG_OPTS="no-bulk no-asm -DOPENSSL_SMALL_FOOTPRINT"
+        } Else {
+            $env:CONFIG_OPTS="no-fips no-shared"
+        }
+    - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %VCVARS_PLATFORM%
+    - mkdir _build
+    - cd _build
+    - perl ..\Configure %TARGET% no-makedepend %CONFIG_OPTS%
+    - perl configdata.pm --dump
+    - cd ..
+    - ps: >-
+        If ($env:BUILDONLY -or $env:MAKEVERBOSE) {
+            $env:NMAKE="nmake"
         } Else {
-            $env:SHARED="no-shared"
+            $env:NMAKE="nmake /S"
         }
-    - ps: $env:VSCOMNTOOLS=(Get-Content ("env:VS" + "$env:VSVER" + "0COMNTOOLS"))
-    - call "%VSCOMNTOOLS%\..\..\VC\vcvarsall.bat" %VCVARS_PLATFORM%
-    - perl Configure %TARGET% no-asm %SHARED%
+    - ps: >-
+        gci env:* | sort-object name
 
 build_script:
-    - nmake
+    - cd _build
+    - "%NMAKE% build_all_generated"
+    - "%NMAKE% PERL=no-perl"
+    - cd ..
 
 test_script:
-    - nmake test
-
-notifications:
-    - provider: Email
-      to:
-          - openssl-commits@openssl.org
-      on_build_success: false
-      on_build_failure: true
-      on_build_status_changed: true
+    - cd _build
+    - ps: >-
+        if ($env:Configuration -Match "plain") {
+            cmd /c "%NMAKE% test VERBOSE_FAILURE=yes 2>&1"
+        } Else {
+            cmd /c "%NMAKE% test VERBOSE_FAILURE=yes TESTS=-test_fuzz 2>&1"
+        }
+    - ps: >-
+        if ($env:Configuration -Match "shared") {
+            mkdir ..\_install
+            cmd /c "%NMAKE% install DESTDIR=..\_install 2>&1"
+        }
+    - cd ..