GHA/windows: add 2 basic MSVC jobs to restore some CI coverage

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 e3912f0f9f #17086
Follow-up to 15fb1dc7f8 #17069

Closes #17089
This commit is contained in:
Viktor Szakats
2025-04-17 19:21:38 +02:00
parent cac50319f9
commit cd0ec4784c

View 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
-DCURL_CA_SEARCH_SAFE=ON -DUSE_WIN32_IDN=ON -DENABLE_UNICODE=ON -DUSE_SSLS_EXPORT=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
-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