]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
GHA/windows: add 2 basic MSVC jobs to restore some CI coverage
authorViktor Szakats <commit@vsz.me>
Thu, 17 Apr 2025 17:21:38 +0000 (19:21 +0200)
committerViktor Szakats <commit@vsz.me>
Thu, 17 Apr 2025 20:15:54 +0000 (22:15 +0200)
To keep testing these with MSVC:
- UWP !ssl
- arm64 build on the `windows-11-arm` runner
- examples
- OpenSSH-Windows (fix install on `windows-11-arm`)
- `windows-2025` runner
- cmake pre-fill checker

Surprise: UWP doesn't support SSPI, which is required by curl's Schannel
backend. Thus, no TLS support for this UWP build. It also suggests
the Schannel UWP mingw-w64 binaries may be broken and just a happy build
accident thanks to mingw-w64 headers being inaccurate.

Building zlib + libssh2 might actually take up to 2+ minutes with vcpkg,
instead of the previously estimated <1.5 minutes.

Follow-up to e3912f0f9fac06d37cd1ab93cef4f01f33809f0b #17086
Follow-up to 15fb1dc7f86ad1832e0386ec7d92542f44ee9c44 #17069

Closes #17089

.github/workflows/windows.yml

index 2c256b82b99f6454fbbe5fdfaea3da14c5be9e63..32afacbcc3492582f7678c1473956c87caf2ac93 100644 (file)
@@ -756,15 +756,42 @@ jobs:
     strategy:
       matrix:
         include:
-          - name: 'zlib libssh2'
+          - name: '!ssl +examples'
             install: 'zlib libssh2[core,zlib]'
             arch: 'x64'
+            plat: 'uwp'
+            type: 'Debug'
+            image: 'windows-2025'
+            tflags: 'skiprun'
+            config: >-
+              -DENABLE_DEBUG=ON
+              -DCURL_ENABLE_SSL=OFF
+              -DUSE_WIN32_IDN=ON
+              -DCURL_USE_LIBPSL=OFF
+
+          - name: 'schannel +examples'
+            install: 'zlib libssh2[core,zlib]'
+            arch: 'x64'
+            plat: 'windows'
+            type: 'Debug'
+            chkprefill: '_chkprefill'
+            config: >-
+              -DENABLE_DEBUG=ON
+              -DCURL_USE_SCHANNEL=ON
+              -DUSE_WIN32_IDN=ON -DUSE_SSLS_EXPORT=ON
+              -DCURL_USE_LIBPSL=OFF
+
+          - name: 'schannel U'
+            install: 'zlib libssh2[core,zlib]'
+            arch: 'arm64'
             plat: 'windows'
             type: 'Debug'
+            image: 'windows-11-arm'
+            openssh: 'OpenSSH-Windows'
             config: >-
               -DENABLE_DEBUG=ON
               -DCURL_USE_SCHANNEL=ON
-              -DCURL_CA_SEARCH_SAFE=ON -DUSE_WIN32_IDN=ON -DENABLE_UNICODE=ON -DUSE_SSLS_EXPORT=ON
+              -DUSE_WIN32_IDN=ON -DENABLE_UNICODE=ON -DUSE_SSLS_EXPORT=ON
               -DCURL_USE_LIBPSL=OFF
 
           #- name: 'openssl +examples'
@@ -952,14 +979,16 @@ jobs:
               pwsh -Command 'Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0'
             fi
           else  # OpenSSH-Windows
-            cd /d || exit 1
+            cd /c || exit 1  # no D: drive on windows-11-arm runners
             curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 \
               --location 'https://github.com/PowerShell/Win32-OpenSSH/releases/download/${{ env.openssh_windows-version }}/OpenSSH-Win64.zip' --output bin.zip
             unzip bin.zip
             rm -f bin.zip
           fi
           /c/ProgramData/chocolatey/choco.exe install --yes --no-progress --limit-output --timeout 180 --force stunnel || true
-          python3 -m pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary impacket
+          if [ '${{ matrix.image }}' != 'windows-11-arm' ]; then  # save 30-60 seconds, to counteract the slower test run step
+            python3 -m pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary impacket
+          fi
 
       - name: 'downgrade msys2-runtime'
         if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
@@ -985,7 +1014,7 @@ jobs:
             else
               TFLAGS+=' ~3022'  # 'SCP correct sha256 host key' SCP, server sha256 key check
             fi
-            PATH="/d/OpenSSH-Win64:$PATH"
+            PATH="/c/OpenSSH-Win64:$PATH"
           fi
           PATH="$PWD/bld/lib/${{ matrix.type }}:$PATH:/c/Program Files (x86)/stunnel/bin"
           cmake --build bld --config '${{ matrix.type }}' --target test-ci