]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
GHA/http3-linux: test non-unity, and more cmake
authorViktor Szakats <commit@vsz.me>
Wed, 20 Aug 2025 09:04:18 +0000 (11:04 +0200)
committerViktor Szakats <commit@vsz.me>
Thu, 21 Aug 2025 11:11:31 +0000 (13:11 +0200)
Reshuffle HTTP/3 jobs to:
- test all backends with cmake too. Adding 4 jobs.
- build all backends in non-unity mode too.
  Either with autotools or cmake.
- run tests once for each backend
  Either with autotools or cmake, with a preference for cmake to finish
  faster.
- drop building examples. There is nothing HTTP/3-specific in examples,
  and they are already built in GHA/linux.
- de-dupe some shared settings.

Ref: https://github.com/curl/curl/issues/17857#issuecomment-3047999309
Ref: 8cef6b5e6e40a7e91709c8a552b5987c76ec6909 #18321 #18320
Ref: d79269166eae62a87dd7385bc47c5fb770d1cd95 #18211 #18212
Ref: 454395ba1ecc5be74d982bb4778dc4123bbe0554 #17857 #17864
Ref: b270fec68dc66c7a3d37a283cc147ba3c6fa7297 #17857 #17858

Closes #18325

.github/workflows/http3-linux.yml

index 56cd2c557494ccfe577cd612a88bfc2c3d31dd4f..d736beb40530b0397c4eb332ab41e520f27a9460 100644 (file)
@@ -260,76 +260,93 @@ jobs:
             PKG_CONFIG_PATH: /home/runner/openssl/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/openssl/build/lib
-              --with-ngtcp2 --enable-warnings --enable-werror --enable-debug --disable-ntlm
-              --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
+              --with-ngtcp2 --disable-ntlm
               --with-openssl=/home/runner/openssl/build --enable-ssls-export
-              --with-libuv
+
+          - name: 'openssl'
+            install_steps: skipall
+            PKG_CONFIG_PATH: /home/runner/openssl/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
+            generate: >-
+              -DOPENSSL_ROOT_DIR=/home/runner/openssl/build
+              -DUSE_NGTCP2=ON -DCURL_DISABLE_NTLM=ON
+              -DCMAKE_UNITY_BUILD=ON
 
           - name: 'quictls'
+            install_steps: skipall
             PKG_CONFIG_PATH: /home/runner/quictls/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/quictls/build/lib
-              --with-ngtcp2 --enable-warnings --enable-werror --enable-debug --disable-ntlm
-              --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
+              --with-ngtcp2 --disable-ntlm
               --with-openssl=/home/runner/quictls/build --enable-ssls-export
-              --with-libuv
+              --enable-unity
+
+          - name: 'quictls'
+            PKG_CONFIG_PATH: /home/runner/quictls/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
+            generate: >-
+              -DOPENSSL_ROOT_DIR=/home/runner/quictls/build
+              -DUSE_NGTCP2=ON -DCURL_DISABLE_NTLM=ON
 
           - name: 'gnutls'
+            install_steps: skipall
             PKG_CONFIG_PATH: /home/runner/gnutls/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/gnutls/build/lib
-              --with-ngtcp2 --enable-warnings --enable-werror --enable-debug
-              --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
+              --with-ngtcp2
               --with-gnutls=/home/runner/gnutls/build --enable-ssls-export
-              --with-libuv
+
+          - name: 'gnutls'
+            PKG_CONFIG_PATH: /home/runner/gnutls/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
+            generate: >-
+              -DCURL_USE_GNUTLS=ON
+              -DUSE_NGTCP2=ON -DCURL_DISABLE_NTLM=ON
+              -DCMAKE_UNITY_BUILD=ON
 
           - name: 'wolfssl'
+            install_steps: skipall
             PKG_CONFIG_PATH: /home/runner/wolfssl/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/wolfssl/build/lib
-              --with-ngtcp2 --enable-warnings --enable-werror --enable-debug
-              --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
+              --with-ngtcp2
               --with-wolfssl=/home/runner/wolfssl/build
               --enable-ech --enable-ssls-export
-              --with-libuv
+              --enable-unity
 
           - name: 'wolfssl'
             PKG_CONFIG_PATH: /home/runner/wolfssl/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/ngtcp2/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             generate: >-
-              -DCURL_USE_WOLFSSL=ON -DUSE_NGTCP2=ON -DENABLE_DEBUG=ON
-              -DTEST_NGHTTPX=/home/runner/nghttp2/build/bin/nghttpx
-              -DHTTPD_NGHTTPX=/home/runner/nghttp2/build/bin/nghttpx
+              -DCURL_USE_WOLFSSL=ON -DUSE_NGTCP2=ON
               -DUSE_ECH=ON
-              -DCURL_USE_LIBUV=ON
 
           - name: 'openssl-quic'
+            install_steps: skipall
             PKG_CONFIG_PATH: /home/runner/openssl/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/openssl/build/lib
-              --enable-warnings --enable-werror --enable-debug --disable-ntlm
-              --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
+              --disable-ntlm
               --with-openssl=/home/runner/openssl/build --with-openssl-quic
-              --with-libuv
+
+          - name: 'openssl-quic'
+            PKG_CONFIG_PATH: /home/runner/openssl/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
+            generate: >-
+              -DOPENSSL_ROOT_DIR=/home/runner/openssl/build -DUSE_OPENSSL_QUIC=ON
+              -DCURL_DISABLE_NTLM=ON
+              -DCMAKE_UNITY_BUILD=ON
 
           - name: 'quiche'
+            install_steps: skipall
             configure: >-
               LDFLAGS=-Wl,-rpath,/home/runner/quiche/target/release
               --with-openssl=/home/runner/quiche/quiche/deps/boringssl/src
-              --enable-warnings --enable-werror --enable-debug
               --with-quiche=/home/runner/quiche/target/release
-              --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx
               --with-ca-fallback
-              --with-libuv
+              --enable-unity
 
           - name: 'quiche'
             PKG_CONFIG_PATH: /home/runner/quiche/target/release
             generate: >-
-              -DOPENSSL_ROOT_DIR=/home/runner/quiche/quiche/deps/boringssl/src -DENABLE_DEBUG=ON
+              -DOPENSSL_ROOT_DIR=/home/runner/quiche/quiche/deps/boringssl/src
               -DUSE_QUICHE=ON
-              -DTEST_NGHTTPX=/home/runner/nghttp2/build/bin/nghttpx
-              -DHTTPD_NGHTTPX=/home/runner/nghttp2/build/bin/nghttpx
               -DCURL_CA_FALLBACK=ON
-              -DCURL_USE_LIBUV=ON
 
     steps:
       - name: 'install prereqs'
@@ -470,10 +487,15 @@ jobs:
           if [ "${MATRIX_BUILD}" = 'cmake' ]; then
             cmake -B bld -G Ninja \
               -DCMAKE_C_COMPILER_TARGET="$(uname -m)-pc-linux-gnu" -DBUILD_STATIC_LIBS=ON \
-              -DCMAKE_UNITY_BUILD=ON -DCURL_WERROR=ON \
+              -DCURL_WERROR=ON -DENABLE_DEBUG=ON \
+              -DCURL_USE_LIBUV=ON \
+              -DTEST_NGHTTPX=/home/runner/nghttp2/build/bin/nghttpx \
+              -DHTTPD_NGHTTPX=/home/runner/nghttp2/build/bin/nghttpx \
               ${MATRIX_GENERATE}
           else
-            mkdir bld && cd bld && ../configure --enable-unity --enable-warnings --enable-werror \
+            mkdir bld && cd bld && ../configure --enable-warnings --enable-werror --enable-debug \
+              --with-libuv \
+              --with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx \
               --disable-dependency-tracking \
               ${MATRIX_CONFIGURE}
           fi
@@ -502,6 +524,7 @@ jobs:
         run: bld/src/curl -V
 
       - name: 'build tests'
+        if: ${{ !contains(matrix.build.install_steps, 'skipall') }}
         run: |
           if [ "${MATRIX_BUILD}" = 'cmake' ]; then
             cmake --build bld --verbose --target testdeps
@@ -510,11 +533,13 @@ jobs:
           fi
 
       - name: 'install test prereqs'
+        if: ${{ !contains(matrix.build.install_steps, 'skipall') && !contains(matrix.build.install_steps, 'skiprun') }}
         run: |
           source ~/venv/bin/activate
           python3 -m pip install -r tests/requirements.txt
 
       - name: 'run tests'
+        if: ${{ !contains(matrix.build.install_steps, 'skipall') && !contains(matrix.build.install_steps, 'skiprun') }}
         env:
           TFLAGS: '${{ matrix.build.tflags }}'
         run: |
@@ -526,11 +551,13 @@ jobs:
           fi
 
       - name: 'install pytest prereqs'
+        if: ${{ !contains(matrix.build.install_steps, 'skipall') && !contains(matrix.build.install_steps, 'skiprun') }}
         run: |
           source ~/venv/bin/activate
           python3 -m pip install -r tests/http/requirements.txt
 
       - name: 'run pytest event based'
+        if: ${{ !contains(matrix.build.install_steps, 'skipall') && !contains(matrix.build.install_steps, 'skiprun') }}
         env:
           CURL_TEST_EVENT: 1
           PYTEST_ADDOPTS: '--color=yes'
@@ -542,11 +569,3 @@ jobs:
           else
             make -C bld V=1 pytest-ci
           fi
-
-      - name: 'build examples'
-        run: |
-          if [ "${MATRIX_BUILD}" = 'cmake' ]; then
-            cmake --build bld --verbose --target curl-examples-build
-          else
-            make -C bld V=1 examples
-          fi