GHA/windows: bump OpenSSH-Windows to v10, other improvements
No binary (build failed)
—
(log yok)
| @@ -34,6 +34,9 @@ permissions: {} | |
| env: | |
| CURL_CI: github | |
| CURL_TEST_MIN: 1700 | |
| + | OPENSSH_WINDOWS_VERSION: 10.0.0.0p2-Preview |
| + | OPENSSH_WINDOWS_SHA256_ARM64: 698c6aec31c1dd0fb996206e8741f4531a97355686b5431ef347d531b07fcd42 |
| + | OPENSSH_WINDOWS_SHA256_WIN64: 23f50f3458c4c5d0b12217c6a5ddfde0137210a30fa870e98b29827f7b43aba5 |
| STUNNEL_VERSION: 5.77 | |
| STUNNEL_SHA256: 59ba0c5330de85ef474164b40cc559b2eb4e2b8d788c48b564e2257efa236384 | |
| @@ -238,6 +241,7 @@ jobs: | |
| LDFLAGS: -s | |
| MAKEFLAGS: -j 5 | |
| MATRIX_BUILD: '${{ matrix.build }}' | |
| + | MATRIX_OPENSSH: '${{ matrix.openssh }}' |
| MATRIX_SYS: '${{ matrix.sys }}' | |
| MATRIX_TEST: '${{ matrix.test }}' | |
| strategy: | |
| @@ -281,10 +285,10 @@ jobs: | |
| build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: '-t --shallow=13 --min=700 951 to 9999', | |
| config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_ARES=ON', | |
| install: 'mingw-w64-ucrt-x86_64-c-ares mingw-w64-ucrt-x86_64-libssh2' } | |
| - | - { name: 'gnutls', type: 'Debug', |
| + | - { name: 'gnutls', type: 'Debug', openssh: 'OpenSSH-Windows', |
| build: 'cmake' , sys: 'clang64' , env: 'clang-x86_64' , tflags: '' , | |
| config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_GNUTLS=ON -DENABLE_UNICODE=OFF -DUSE_NGTCP2=ON -DCURL_ENABLE_NTLM=ON', | |
| - | install: 'mingw-w64-clang-x86_64-gnutls mingw-w64-clang-x86_64-nghttp3 mingw-w64-clang-x86_64-ngtcp2' } |
| + | install: 'mingw-w64-clang-x86_64-gnutls mingw-w64-clang-x86_64-nghttp3 mingw-w64-clang-x86_64-ngtcp2 unzip' } |
| - { name: 'schannel R', type: 'Release', image: 'windows-11-arm', | |
| build: 'cmake' , sys: 'clangarm64', env: 'clang-aarch64', tflags: 'skiprun' , | |
| config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DCURL_DROP_UNUSED=ON', | |
| @@ -462,7 +466,27 @@ jobs: | |
| - name: 'install test prereqs' | |
| if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }} | |
| timeout-minutes: 2 | |
| - | run: /usr/bin/pacman --noconfirm --noprogressbar --sync --needed openssh |
| + | run: | |
| + | if [ -z "${MATRIX_OPENSSH}" ]; then # MSYS2 openssh |
| + | /usr/bin/pacman --noconfirm --noprogressbar --sync --needed openssh |
| + | elif [ "${MATRIX_OPENSSH}" = 'OpenSSH-Windows-builtin' ]; then |
| + | # https://learn.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse |
| + | if [[ "${MATRIX_IMAGE}" = *'windows-2025'* ]]; then |
| + | pwsh -Command 'Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0' |
| + | pwsh -Command 'Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0' |
| + | fi |
| + | else # OpenSSH-Windows |
| + | cd /c # no D: drive on windows-11-arm runners |
| + | if [[ "${MATRIX_IMAGE}" = *'-arm'* ]]; then |
| + | curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \ |
| + | --location "https://github.com/PowerShell/Win32-OpenSSH/releases/download/${OPENSSH_WINDOWS_VERSION}/OpenSSH-ARM64.zip" --output pkg.bin |
| + | sha256sum pkg.bin && sha256sum pkg.bin | grep -qwF -- "${OPENSSH_WINDOWS_SHA256_ARM64}" && unzip pkg.bin && rm -f pkg.bin |
| + | else |
| + | curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \ |
| + | --location "https://github.com/PowerShell/Win32-OpenSSH/releases/download/${OPENSSH_WINDOWS_VERSION}/OpenSSH-Win64.zip" --output pkg.bin |
| + | sha256sum pkg.bin && sha256sum pkg.bin | grep -qwF -- "${OPENSSH_WINDOWS_SHA256_WIN64}" && unzip pkg.bin && rm -f pkg.bin |
| + | fi |
| + | fi |
| - name: 'run tests' | |
| if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }} | |
| @@ -483,6 +507,22 @@ jobs: | |
| export CURL_TEST_NO_TASKKILL=1 # experiment to see if it reduces flaky failures | |
| fi | |
| fi | |
| + | if [ -n "${MATRIX_OPENSSH}" ]; then # OpenSSH-Windows |
| + | TFLAGS+=' ~601 ~603 ~617 ~619 ~621 ~641 ~665 ~2004' # SCP |
| + | if [[ "${MATRIX_INSTALL_MSYS2} " = *'libssh '* || \ |
| + | "${MATRIX_INSTALL_VCPKG} " = *'libssh '* ]]; then |
| + | TFLAGS+=' ~614' # 'SFTP pre-quote chmod' SFTP, pre-quote, directory |
| + | else |
| + | TFLAGS+=' ~3022' # 'SCP correct sha256 host key' SCP, server sha256 key check |
| + | fi |
| + | fi |
| + | if [ "${MATRIX_OPENSSH}" = 'OpenSSH-Windows' ]; then |
| + | if [[ "${MATRIX_IMAGE}" = *'-arm'* ]]; then |
| + | PATH="/c/OpenSSH-ARM64:$PATH" |
| + | else |
| + | PATH="/c/OpenSSH-Win64:$PATH" |
| + | fi |
| + | fi |
| if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then | |
| TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")" | |
| fi | |
| @@ -837,8 +877,6 @@ jobs: | |
| MATRIX_OPENSSH: '${{ matrix.openssh }}' | |
| MATRIX_PLAT: '${{ matrix.plat }}' | |
| MATRIX_TYPE: '${{ matrix.type }}' | |
| - | OPENSSH_WINDOWS_VERSION: v9.8.1.0p1-Preview |
| - | OPENSSH_WINDOWS_SHA256: c7a1369cd73c8165be00c66e90291c4dd67784de7c3aa3af18c68ebedffa6ea9 |
| VCPKG_DISABLE_METRICS: '1' | |
| strategy: | |
| matrix: | |
| @@ -1074,7 +1112,7 @@ jobs: | |
| - name: 'install test prereqs' | |
| if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }} | |
| - | timeout-minutes: 5 |
| + | timeout-minutes: 2 |
| run: | | |
| if [ -z "${MATRIX_OPENSSH}" ]; then # MSYS2 openssh | |
| /usr/bin/pacman --noconfirm --noprogressbar --sync --needed openssh | |
| @@ -1086,9 +1124,15 @@ jobs: | |
| fi | |
| else # OpenSSH-Windows | |
| cd /c # no D: drive on windows-11-arm runners | |
| - | curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \ |
| - | --location "https://github.com/PowerShell/Win32-OpenSSH/releases/download/${OPENSSH_WINDOWS_VERSION}/OpenSSH-Win64.zip" --output pkg.bin |
| - | sha256sum pkg.bin && sha256sum pkg.bin | grep -qwF -- "${OPENSSH_WINDOWS_SHA256}" && unzip pkg.bin && rm -f pkg.bin |
| + | if [[ "${MATRIX_IMAGE}" = *'-arm'* ]]; then |
| + | curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \ |
| + | --location "https://github.com/PowerShell/Win32-OpenSSH/releases/download/${OPENSSH_WINDOWS_VERSION}/OpenSSH-ARM64.zip" --output pkg.bin |
| + | sha256sum pkg.bin && sha256sum pkg.bin | grep -qwF -- "${OPENSSH_WINDOWS_SHA256_ARM64}" && unzip pkg.bin && rm -f pkg.bin |
| + | else |
| + | curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \ |
| + | --location "https://github.com/PowerShell/Win32-OpenSSH/releases/download/${OPENSSH_WINDOWS_VERSION}/OpenSSH-Win64.zip" --output pkg.bin |
| + | sha256sum pkg.bin && sha256sum pkg.bin | grep -qwF -- "${OPENSSH_WINDOWS_SHA256_WIN64}" && unzip pkg.bin && rm -f pkg.bin |
| + | fi |
| fi | |
| if "bld/src/${MATRIX_TYPE}/curl.exe" --disable -V 2>/dev/null | grep smb; then | |
| python3 -m pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary -r tests/requirements.txt | |
| @@ -1115,7 +1159,13 @@ jobs: | |
| else | |
| TFLAGS+=' ~3022' # 'SCP correct sha256 host key' SCP, server sha256 key check | |
| fi | |
| - | PATH="/c/OpenSSH-Win64:$PATH" |
| + | fi |
| + | if [ "${MATRIX_OPENSSH}" = 'OpenSSH-Windows' ]; then |
| + | if [[ "${MATRIX_IMAGE}" = *'-arm'* ]]; then |
| + | PATH="/c/OpenSSH-ARM64:$PATH" |
| + | else |
| + | PATH="/c/OpenSSH-Win64:$PATH" |
| + | fi |
| fi | |
| PATH="$PWD/bld/lib/${MATRIX_TYPE}:$PATH:/c/my-stunnel/bin" | |
| cmake --build bld --config "${MATRIX_TYPE}" --target test-ci | |