From: Viktor Szakats Date: Wed, 20 Aug 2025 09:04:18 +0000 (+0200) Subject: GHA/http3-linux: test non-unity, and more cmake X-Git-Tag: curl-8_16_0~143 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=29608d694e453683c52d5d99b20a639d3306dd11;p=thirdparty%2Fcurl.git GHA/http3-linux: test non-unity, and more cmake 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 --- diff --git a/.github/workflows/http3-linux.yml b/.github/workflows/http3-linux.yml index 56cd2c5574..d736beb405 100644 --- a/.github/workflows/http3-linux.yml +++ b/.github/workflows/http3-linux.yml @@ -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