@@ -37,6 +37,7 @@ permissions: {}
3737
3838env :
3939 CURL_CI : github
40+ CURL_TEST_MIN : 1700
4041
4142jobs :
4243 cygwin :
7475 libnghttp2-devel
7576 ${{ matrix.install }}
7677
77- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 .0.0
78+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 .0.1
7879 with :
7980 persist-credentials : false
8081
@@ -197,28 +198,30 @@ jobs:
197198 matrix :
198199 include :
199200 # MSYS
200- - { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '' , config: '--enable-debug --with-openssl --disable-threaded-resolver --disable-proxy', install: 'openssl-devel libssh2-devel', name: '!proxy' }
201- - { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: 'skiprun', config: '--enable-debug --with-openssl --disable-threaded-resolver', install: 'openssl-devel libssh2-devel', name: 'default' }
202- - { build: 'cmake' , sys: 'msys' , env: 'x86_64' , tflags: '' , config: '-DENABLE_DEBUG=ON -DENABLE_THREADED_RESOLVER=OFF', install: 'openssl-devel libssh2-devel', name: 'default' }
203- - { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '' , config: '--with-openssl', install: 'openssl-devel libssh2-devel', name: 'default R' }
201+ - { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '--min=1550' , config: '--enable-debug --with-openssl --disable-threaded-resolver --disable-proxy', install: 'openssl-devel libssh2-devel', name: '!proxy' }
202+ - { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: 'skiprun' , config: '--enable-debug --with-openssl --disable-threaded-resolver', install: 'openssl-devel libssh2-devel', name: 'default' }
203+ - { build: 'cmake' , sys: 'msys' , env: 'x86_64' , tflags: '' , config: '-DENABLE_DEBUG=ON -DENABLE_THREADED_RESOLVER=OFF', install: 'openssl-devel libssh2-devel', name: 'default' }
204+ - { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '' , config: '--with-openssl', install: 'openssl-devel libssh2-devel', name: 'default R' }
204205 # MinGW
205- - { build: 'autotools', sys: 'mingw64' , env: 'x86_64' , tflags: 'skiprun', config: '--enable-debug --with-openssl --disable-threaded-resolver --disable-curldebug --enable-static=no --without-zlib CPPFLAGS=-D_WIN32_WINNT=0x0501', install: 'mingw-w64-x86_64-openssl mingw-w64-x86_64-libssh2', name: 'default XP' }
206- - { build: 'autotools', sys: 'mingw64' , env: 'x86_64' , tflags: '' , config: '--enable-debug --with-openssl --enable-windows-unicode --enable-ares --with-openssl-quic --enable-shared=no', install: 'mingw-w64-x86_64-openssl mingw-w64-x86_64-nghttp3 mingw-w64-x86_64-libssh2', name: 'c-ares U' }
207- - { build: 'cmake' , sys: 'mingw64' , env: 'x86_64' , tflags: '' , config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_ARES=ON', install: 'mingw-w64-x86_64-libssh2', type: 'Debug', name: 'schannel c-ares U' }
206+ - { build: 'autotools', sys: 'mingw64' , env: 'x86_64' , tflags: 'skiprun' , config: '--enable-debug --with-openssl --disable-threaded-resolver --disable-curldebug --enable-static=no --without-zlib CPPFLAGS=-D_WIN32_WINNT=0x0501', install: 'mingw-w64-x86_64-openssl mingw-w64-x86_64-libssh2', name: 'default XP' }
207+ - { build: 'autotools', sys: 'mingw64' , env: 'x86_64' , tflags: '' , config: '--enable-debug --with-openssl --enable-windows-unicode --enable-ares --with-openssl-quic --enable-shared=no', install: 'mingw-w64-x86_64-c-ares mingw-w64-x86_64-openssl mingw-w64-x86_64-nghttp3 mingw-w64-x86_64-libssh2', name: 'c-ares U' }
208+ - { build: 'cmake' , sys: 'mingw64' , env: 'x86_64' , tflags: '--min=1650', config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_ARES=ON', install: 'mingw-w64-x86_64-c-ares mingw-w64-x86_64-libssh2', type: 'Debug', name: 'schannel c-ares U' }
209+ # MinGW torture
210+ - { build: 'cmake' , sys: 'mingw64' , env: 'x86_64' , tflags: '-t --shallow=13 !FTP --min=1300', config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_ARES=ON', install: 'mingw-w64-x86_64-c-ares mingw-w64-x86_64-libssh2', type: 'Debug', name: 'schannel U torture' }
208211 # WARNING: libssh uses hard-coded world-writable paths (/etc/..., ~/.ssh/) to
209212 # read its configuration from, making it vulnerable to attacks on
210213 # Windows. Do not use this component till there is a fix for these.
211214 # https://github.com/curl/curl-for-win/blob/3951808deb04df9489ee17430f236ed54436f81a/libssh.sh#L6-L8
212- - { 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_USE_LIBSSH2=OFF -DCURL_USE_LIBSSH=ON', install: 'mingw-w64-clang-x86_64-gnutls mingw-w64-clang-x86_64-nghttp3 mingw-w64-clang-x86_64-ngtcp2 mingw-w64-clang-x86_64-libssh', type: 'Debug', name: 'gnutls libssh' }
213- - { build: 'cmake' , sys: 'clangarm64', env: 'clang-aarch64', tflags: 'skiprun', config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_CURLDEBUG=ON', install: 'mingw-w64-clang-aarch64-libssh2', type: 'Release', name: 'schannel R TrackMemory', image: 'windows-11-arm' }
214- - { build: 'cmake' , sys: 'clang64' , env: 'clang-x86_64' , tflags: 'skiprun', config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_OPENSSL=ON -DENABLE_UNICODE=OFF -DUSE_NGTCP2=ON', install: 'mingw-w64-clang-x86_64-openssl mingw-w64-clang-x86_64-nghttp3 mingw-w64-clang-x86_64-ngtcp2 mingw-w64-clang-x86_64-libssh2', type: 'Release', name: 'openssl', chkprefill: '_chkprefill' }
215- - { build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun', config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_OPENSSL=ON', install: 'mingw-w64-ucrt-x86_64-openssl mingw-w64-ucrt-x86_64-libssh2', type: 'Release', test: 'uwp', name: 'schannel' }
216- # { build: 'autotools', sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun', config: '--without-debug --with-schannel --enable-shared', install: 'mingw-w64-ucrt-x86_64-libssh2', type: 'Release', test: 'uwp', name: 'schannel' }
217- - { build: 'cmake' , sys: 'mingw64' , env: 'x86_64' , tflags: 'skiprun', config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DCMAKE_VERBOSE_MAKEFILE=ON', install: 'mingw-w64-x86_64-libssh2', type: 'Debug', cflags: '-DCURL_SCHANNEL_DEV_DEBUG', name: 'schannel dev debug', image: 'windows-2025' }
218- - { build: 'cmake' , sys: 'mingw32' , env: 'i686' , tflags: 'skiprun', config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON', install: 'mingw-w64-i686-libssh2', type: 'Release', name: 'schannel R' }
215+ - { 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_USE_LIBSSH2=OFF -DCURL_USE_LIBSSH=ON', install: 'mingw-w64-clang-x86_64-gnutls mingw-w64-clang-x86_64-nghttp3 mingw-w64-clang-x86_64-ngtcp2 mingw-w64-clang-x86_64-libssh', type: 'Debug', name: 'gnutls libssh' }
216+ - { build: 'cmake' , sys: 'clangarm64', env: 'clang-aarch64', tflags: 'skiprun' , config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_CURLDEBUG=ON', install: 'mingw-w64-clang-aarch64-libssh2', type: 'Release', name: 'schannel R TrackMemory', image: 'windows-11-arm' }
217+ - { build: 'cmake' , sys: 'clang64' , env: 'clang-x86_64' , tflags: 'skiprun' , config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_OPENSSL=ON -DENABLE_UNICODE=OFF -DUSE_NGTCP2=ON', install: 'mingw-w64-clang-x86_64-openssl mingw-w64-clang-x86_64-nghttp3 mingw-w64-clang-x86_64-ngtcp2 mingw-w64-clang-x86_64-libssh2', type: 'Release', name: 'openssl', chkprefill: '_chkprefill' }
218+ - { build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun' , config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_OPENSSL=ON', install: 'mingw-w64-ucrt-x86_64-openssl mingw-w64-ucrt-x86_64-libssh2', type: 'Release', test: 'uwp', name: 'schannel' }
219+ # { build: 'autotools', sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun' , config: '--without-debug --with-schannel --enable-shared', install: 'mingw-w64-ucrt-x86_64-libssh2', type: 'Release', test: 'uwp', name: 'schannel' }
220+ - { build: 'cmake' , sys: 'mingw64' , env: 'x86_64' , tflags: 'skiprun' , config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DCMAKE_VERBOSE_MAKEFILE=ON', install: 'mingw-w64-x86_64-libssh2', type: 'Debug', cflags: '-DCURL_SCHANNEL_DEV_DEBUG', name: 'schannel dev debug', image: 'windows-2025' }
221+ - { build: 'cmake' , sys: 'mingw32' , env: 'i686' , tflags: 'skiprun' , config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON', install: 'mingw-w64-i686-libssh2', type: 'Release', name: 'schannel R' }
219222 fail-fast : false
220223 steps :
221- - uses : msys2/setup-msys2@fb197b72ce45fb24f17bf3f807a388985654d1f2 # v2.29 .0
224+ - uses : msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2.30 .0
222225 if : ${{ matrix.sys == 'msys' }}
223226 with :
224227 msystem : ${{ matrix.sys }}
@@ -234,7 +237,7 @@ jobs:
234237 libpsl-devel
235238 ${{ matrix.install }}
236239
237- - uses : msys2/setup-msys2@fb197b72ce45fb24f17bf3f807a388985654d1f2 # v2.29 .0
240+ - uses : msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2.30 .0
238241 if : ${{ matrix.sys != 'msys' }}
239242 with :
240243 msystem : ${{ matrix.sys }}
@@ -243,10 +246,9 @@ jobs:
243246 mingw-w64-${{ matrix.env }}-${{ matrix.build }} ${{ matrix.build == 'autotools' && 'make' || '' }}
244247 mingw-w64-${{ matrix.env }}-diffutils
245248 mingw-w64-${{ matrix.env }}-libpsl
246- mingw-w64-${{ matrix.env }}-c-ares
247249 ${{ matrix.install }}
248250
249- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 .0.0
251+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 .0.1
250252 with :
251253 persist-credentials : false
252254
@@ -367,7 +369,7 @@ jobs:
367369
368370 - name : ' run tests'
369371 if : ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
370- timeout-minutes : 10
372+ timeout-minutes : ${{ contains(matrix.tflags, '-t') && 15 || 10 }}
371373 env :
372374 MATRIX_INSTALL : ' ${{ matrix.install }}'
373375 TFLAGS : ' ${{ matrix.tflags }}'
@@ -378,6 +380,9 @@ jobs:
378380 if [[ "${MATRIX_INSTALL}" = *'libssh2-wincng'* ]]; then
379381 TFLAGS+=' ~SCP ~SFTP' # Flaky: `-8, Unable to exchange encryption keys`. https://github.com/libssh2/libssh2/issues/804
380382 fi
383+ if [[ "${TFLAGS}" = *'-t'* ]]; then
384+ TFLAGS+=' !2300' # Leaks memory and file handle via tool_doswin.c / win32_stdin_read_thread()
385+ fi
381386 fi
382387 if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then
383388 TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")"
@@ -412,27 +417,31 @@ jobs:
412417 run :
413418 shell : msys2 {0}
414419 env :
420+ CURL_TEST_MIN : 1550
415421 MAKEFLAGS : -j 5
416422 MATRIX_DIR : ' ${{ matrix.dir }}'
417423 strategy :
418424 matrix :
419425 include :
420426 - name : ' schannel' # mingw-w64 12.0
421- dir : ' mingw64'
427+ sys : ' mingw64'
428+ dir : ' w64devkit'
422429 env : ' x86_64'
423- ver : ' 15.0.1 '
424- url : ' https://github.com/brechtsanders/winlibs_mingw /releases/download/15.0.1-snapshot20250406posix-12.0.0-ucrt-r1/winlibs-x86_64-posix-seh-gcc-15.0.1-snapshot20250406-mingw-w64ucrt-12.0.0-r1.7z '
425- config : ' -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=OFF'
430+ ver : ' 15.1.0 '
431+ url : ' https://github.com/skeeto/w64devkit /releases/download/v2.2.0/w64devkit-x64-2.2.0.7z.exe '
432+ config : ' -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=OFF -DENABLE_UNIX_SOCKETS=OFF '
426433 type : ' Release'
427- tflags : ' skiprun'
428434 - name : ' schannel' # mingw-w64 10.0
435+ sys : ' mingw64'
429436 dir : ' mingw64'
430437 env : ' x86_64'
431438 ver : ' 9.5.0'
432439 url : ' https://github.com/brechtsanders/winlibs_mingw/releases/download/9.5.0-10.0.0-msvcrt-r1/winlibs-x86_64-posix-seh-gcc-9.5.0-mingw-w64msvcrt-10.0.0-r1.7z'
433440 config : ' -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=OFF'
434441 type : ' Release'
442+ tflags : ' skiprun'
435443 - name : ' schannel mbedtls U' # mingw-w64 6.0
444+ sys : ' mingw64'
436445 dir : ' mingw64'
437446 env : ' x86_64'
438447 ver : ' 7.3.0'
@@ -442,6 +451,7 @@ jobs:
442451 type : ' Release'
443452 tflags : ' skiprun'
444453 - name : ' schannel !unity' # mingw-w64 5.0
454+ sys : ' mingw32'
445455 dir : ' mingw32'
446456 env : ' i686'
447457 ver : ' 6.4.0'
@@ -450,18 +460,20 @@ jobs:
450460 type : ' Debug'
451461 tflags : ' skiprun'
452462 - name : ' schannel !examples' # mingw-w64 3.0
463+ sys : ' mingw64'
453464 dir : ' mingw64'
454465 env : ' x86_64'
455466 ver : ' 4.8.1'
456467 url : ' https://downloads.sourceforge.net/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.8.1/threads-win32/seh/x86_64-4.8.1-release-win32-seh-rt_v3-rev2.7z'
457468 config : ' -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON'
458469 type : ' Debug'
459470 tflags : ' skipall'
471+ chkprefill : ' ' # Set it once to silence actionlint
460472 fail-fast : false
461473 steps :
462- - uses : msys2/setup-msys2@fb197b72ce45fb24f17bf3f807a388985654d1f2 # v2.29 .0
474+ - uses : msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2.30 .0
463475 with :
464- msystem : ${{ matrix.dir }}
476+ msystem : ${{ matrix.sys }}
465477 release : false
466478 update : false
467479 cache : false
@@ -471,7 +483,7 @@ jobs:
471483 ${{ matrix.install }}
472484
473485 - name : ' cache compiler (gcc ${{ matrix.ver }}-${{ matrix.env }})'
474- uses : actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
486+ uses : actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
475487 id : cache-compiler
476488 with :
477489 path : D:\my-cache
@@ -493,7 +505,7 @@ jobs:
493505 rm -r -f pack.bin
494506 ls -l
495507
496- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 .0.0
508+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 .0.1
497509 with :
498510 persist-credentials : false
499511
@@ -606,7 +618,7 @@ jobs:
606618 sudo rm -f /var/lib/man-db/auto-update
607619 sudo apt-get -o Dpkg::Use-Pty=0 install gcc-mingw-w64-x86-64-win32
608620
609- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 .0.0
621+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 .0.1
610622 with :
611623 persist-credentials : false
612624
@@ -766,14 +778,15 @@ jobs:
766778 type : ' Debug'
767779 image : ' windows-11-arm'
768780 openssh : ' OpenSSH-Windows'
781+ tflags : ' --min=1650'
769782 config : >-
770783 -DENABLE_DEBUG=ON
771784 -DCURL_USE_SCHANNEL=ON
772785 -DUSE_WIN32_IDN=ON -DENABLE_UNICODE=ON -DUSE_SSLS_EXPORT=ON
773786
774787 fail-fast : false
775788 steps :
776- - uses : msys2/setup-msys2@fb197b72ce45fb24f17bf3f807a388985654d1f2 # v2.29 .0
789+ - uses : msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2.30 .0
777790 with :
778791 msystem : ${{ matrix.arch == 'arm64' && 'clangarm64' || 'ucrt64' }}
779792 release : ${{ contains(matrix.image, 'arm') }}
@@ -795,7 +808,7 @@ jobs:
795808 timeout-minutes : 45
796809 run : vcpkg x-set-installed ${MATRIX_INSTALL_VCPKG} --triplet="${MATRIX_ARCH}-${MATRIX_PLAT}"
797810
798- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 .0.0
811+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 .0.1
799812 with :
800813 persist-credentials : false
801814
0 commit comments