Skip to content

Commit 66313cc

Browse files
committed
GHA/windows: add GnuTLS job, drop default OpenSSL for Cygwin/MSYS2 jobs
To allow selecting the TLS backend(s) for each individual job. Closes curl#16629
1 parent e86f998 commit 66313cc

File tree

1 file changed

+25
-33
lines changed

1 file changed

+25
-33
lines changed

.github/workflows/windows.yml

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ jobs:
4949
strategy:
5050
matrix:
5151
include:
52-
- { build: 'automake', platform: 'x86_64', tflags: 'skiprun', config: '', name: 'openssl R' }
53-
- { build: 'cmake' , platform: 'x86_64', tflags: '' , config: '-DENABLE_DEBUG=ON -DCURL_USE_OPENSSL=ON -DENABLE_THREADED_RESOLVER=OFF', name: 'openssl' }
52+
- { build: 'automake', platform: 'x86_64', tflags: 'skiprun', config: '--with-openssl', install: 'libssl-devel', name: 'openssl R' }
53+
- { build: 'cmake' , platform: 'x86_64', tflags: '' , config: '-DENABLE_DEBUG=ON -DCURL_USE_OPENSSL=ON -DENABLE_THREADED_RESOLVER=OFF', install: 'libssl-devel', name: 'openssl' }
5454
fail-fast: false
5555
steps:
5656
- run: git config --global core.autocrlf input
@@ -65,7 +65,6 @@ jobs:
6565
autoconf libtool gcc-core gcc-g++ binutils
6666
${{ matrix.build }} make ninja
6767
openssh
68-
libssl-devel
6968
libssh2-devel
7069
libpsl-devel
7170
zlib-devel
@@ -94,7 +93,6 @@ jobs:
9493
else
9594
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-warnings --enable-werror \
9695
--prefix="${HOME}"/install \
97-
--with-openssl \
9896
--with-libssh2 \
9997
--disable-dependency-tracking \
10098
${{ matrix.config }}
@@ -174,20 +172,22 @@ jobs:
174172
strategy:
175173
matrix:
176174
include:
177-
- { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '' , config: '--enable-debug --with-openssl --disable-threaded-resolver --disable-proxy', name: '!proxy' }
178-
- { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: 'skiprun', config: '--enable-debug --with-openssl --disable-threaded-resolver', name: 'default' }
179-
- { build: 'cmake' , sys: 'msys' , env: 'x86_64' , tflags: '' , config: '-DENABLE_DEBUG=ON -DENABLE_THREADED_RESOLVER=OFF', name: 'default' }
180-
- { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '' , config: '--with-openssl', name: 'default R' }
181-
- { build: 'autotools', sys: 'mingw64', env: 'x86_64' , tflags: 'skiprun', config: '--enable-debug --with-openssl --disable-threaded-resolver --disable-curldebug --enable-static=no --without-zlib', name: 'default' }
182-
- { build: 'autotools', sys: 'mingw64', env: 'x86_64' , tflags: '' , config: '--enable-debug --with-openssl --enable-windows-unicode --enable-ares', name: 'c-ares U' }
183-
# FIXME: WebSockets test results ignored due to frequent failures on native Windows:
184-
- { 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', type: 'Debug', name: 'schannel c-ares U' }
185-
- { build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun', config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_CURLDEBUG=ON', type: 'Release', name: 'schannel R TrackMemory' }
186-
- { 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', type: 'Release', name: 'openssl', chkprefill: '_chkprefill' }
187-
- { build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun', config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON', type: 'Release', test: 'uwp', name: 'schannel' }
188-
# { build: 'autotools', sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun', config: '--without-debug --with-schannel --enable-shared', type: 'Release', test: 'uwp', name: 'schannel' }
189-
- { 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', type: 'Debug', cflags: '-DCURL_SCHANNEL_DEV_DEBUG', name: 'schannel dev debug' }
190-
- { build: 'cmake' , sys: 'mingw32', env: 'i686' , tflags: 'skiprun', config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON', type: 'Release', name: 'schannel R' }
175+
# MSYS
176+
- { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '' , config: '--enable-debug --with-openssl --disable-threaded-resolver --disable-proxy', install: 'openssl-devel', name: '!proxy' }
177+
- { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: 'skiprun', config: '--enable-debug --with-openssl --disable-threaded-resolver', install: 'openssl-devel', name: 'default' }
178+
- { build: 'cmake' , sys: 'msys' , env: 'x86_64' , tflags: '' , config: '-DENABLE_DEBUG=ON -DENABLE_THREADED_RESOLVER=OFF', install: 'openssl-devel', name: 'default' }
179+
- { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '' , config: '--with-openssl', install: 'openssl-devel', name: 'default R' }
180+
# MinGW
181+
- { build: 'autotools', sys: 'mingw64', env: 'x86_64' , tflags: 'skiprun', config: '--enable-debug --with-openssl --disable-threaded-resolver --disable-curldebug --enable-static=no --without-zlib', install: 'mingw-w64-x86_64-openssl', name: 'default' }
182+
- { build: 'autotools', sys: 'mingw64', env: 'x86_64' , tflags: '' , config: '--enable-debug --with-openssl --enable-windows-unicode --enable-ares', install: 'mingw-w64-x86_64-openssl', name: 'c-ares U' }
183+
- { 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: '', type: 'Debug', name: 'schannel c-ares U' }
184+
- { build: 'cmake' , sys: 'clang64', env: 'clang-x86_64', tflags: '' , config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_GNUTLS=ON -DENABLE_UNICODE=OF', install: 'mingw-w64-clang-x86_64-gnutls', type: 'Debug', name: 'gnutls' }
185+
- { build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun', config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_CURLDEBUG=ON', install: '', type: 'Release', name: 'schannel R TrackMemory' }
186+
- { 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', install: 'mingw-w64-clang-x86_64-openssl', type: 'Release', name: 'openssl', chkprefill: '_chkprefill' }
187+
- { build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun', config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON', install: '', type: 'Release', test: 'uwp', name: 'schannel' }
188+
# { build: 'autotools', sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun', config: '--without-debug --with-schannel --enable-shared', install: '', type: 'Release', test: 'uwp', name: 'schannel' }
189+
- { 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: '', type: 'Debug', cflags: '-DCURL_SCHANNEL_DEV_DEBUG', name: 'schannel dev debug' }
190+
- { build: 'cmake' , sys: 'mingw32', env: 'i686' , tflags: 'skiprun', config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON', install: '', type: 'Release', name: 'schannel R' }
191191
fail-fast: false
192192
steps:
193193
- run: git config --global core.autocrlf input
@@ -203,13 +203,13 @@ jobs:
203203
${{ matrix.build }} ${{ matrix.build == 'autotools' && 'make' || 'ninja' }}
204204
diffutils
205205
openssh
206-
openssl-devel
207206
zlib-devel
208207
brotli-devel
209208
libzstd-devel
210209
libnghttp2-devel
211210
libpsl-devel
212211
libssh2-devel
212+
${{ matrix.install }}
213213
214214
- uses: msys2/setup-msys2@61f9e5e925871ba6c9e3e8da24ede83ea27fa91f # v2
215215
if: ${{ matrix.sys != 'msys' }}
@@ -220,10 +220,10 @@ jobs:
220220
mingw-w64-${{ matrix.env }}-${{ matrix.build }} ${{ matrix.build == 'autotools' && 'make' || '' }}
221221
mingw-w64-${{ matrix.env }}-diffutils
222222
openssh
223-
mingw-w64-${{ matrix.env }}-openssl
224223
mingw-w64-${{ matrix.env }}-libssh2
225224
mingw-w64-${{ matrix.env }}-libpsl
226225
mingw-w64-${{ matrix.env }}-c-ares
226+
${{ matrix.install }}
227227
228228
- name: 'downgrade msys2-runtime'
229229
if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' && matrix.sys != 'msys' }}
@@ -350,6 +350,9 @@ jobs:
350350
if [ '${{ matrix.sys }}' != 'msys' ]; then
351351
TFLAGS+=' ~612' # SFTP
352352
fi
353+
if [ '${{ matrix.sys }}' = 'clang64' ]; then
354+
TFLAGS+=' ~2302 ~2303 ~2307' # permafail with clang (and also MSVC) (but works with mingw64 and ucrt64)
355+
fi
353356
if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then
354357
TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")"
355358
fi
@@ -753,6 +756,8 @@ jobs:
753756
-DCURL_USE_GSASL=ON -DENABLE_ARES=ON -DCURL_USE_LIBUV=ON -DCURL_USE_GSSAPI=ON
754757
755758
- name: 'schannel MultiSSL U'
759+
# GnuTLS is not fully functional with MSVC, build-test only
760+
# https://github.com/ShiftMediaProject/gnutls/issues/23
756761
install: 'brotli zlib zstd libpsl nghttp2 libssh2[core,zlib] pkgconf gsasl shiftmedia-libgnutls openssl mbedtls wolfssl'
757762
arch: 'x64'
758763
plat: 'windows'
@@ -793,19 +798,6 @@ jobs:
793798
-DCURL_USE_GSASL=ON
794799
-DUSE_ECH=ON
795800
796-
- name: 'gnutls'
797-
install: 'brotli zlib zstd libpsl nghttp2 shiftmedia-libgnutls libssh2 pkgconf gsasl ngtcp2[gnutls] nghttp3'
798-
arch: 'x64'
799-
plat: 'windows'
800-
type: 'Debug'
801-
# GnuTLS is not fully functional on Windows, so skip the tests
802-
# https://github.com/ShiftMediaProject/gnutls/issues/23
803-
tflags: 'skiprun'
804-
config: >-
805-
-DCURL_USE_LIBSSH2=ON
806-
-DCURL_USE_SCHANNEL=OFF -DCURL_USE_GNUTLS=ON -DUSE_NGTCP2=ON
807-
-DCURL_USE_GSASL=ON
808-
809801
- name: 'mbedtls'
810802
install: 'brotli zlib zstd libpsl nghttp2 mbedtls libssh pkgconf gsasl'
811803
arch: 'x64'

0 commit comments

Comments
 (0)