mirror of
https://github.com/curl/curl.git
synced 2026-07-26 12:37:16 +03:00
GHA: enable H3 proxy in CI, also enable h2o tests on Linux
Also: - GHA/http3-linux: enable deprecated APIs in openssl-prev local OpenSSL builds. Required by h2o and its vendored dependencies. Tried OpenSSL 4, LibreSSL 4.x, BoringSSL: all failed at one point. - GHA/http3-linux: build h2o from source. libuv1-dev may not be stricly required. Tried installing libwslay-dev, but it wasn't recognized. Also disable building h2o libs for a much smaller dist directory and slightly faster build. Sadly, h2o is not versioned, so I pinned to the current latest commit at the master branch. It advertises itself as 2.3.0-DEV in pytest. - drop redundant `libnghttp3` installs. Remains of openssl-quic builds. Follow-up to6aaac9dd38#20226 Note GHA/macos pytests may or not not be stable with the H3 proxy tests. Follow-up toe78b1b3ecc#21153 Closes #21789
This commit is contained in:
parent
cfa735c40a
commit
59213f8248
5 changed files with 61 additions and 23 deletions
58
.github/workflows/http3-linux.yml
vendored
58
.github/workflows/http3-linux.yml
vendored
|
|
@ -61,6 +61,9 @@ env:
|
|||
NGTCP2_VERSION: 1.22.1
|
||||
# renovate: datasource=github-tags depName=nghttp2/nghttp2 versioning=semver registryUrl=https://github.com
|
||||
NGHTTP2_VERSION: 1.69.0
|
||||
# no tagged releases
|
||||
H2O_VERSION: 11b0cfa2771e3ccad4a852e72473e4e278ab1de7 # 2026-05-28
|
||||
H2O_SHA256: 5ae1bd7b09970d7d49c41fa68193e24da04c2a7ac5581fbe2affc79200b0721f
|
||||
|
||||
jobs:
|
||||
build-cache:
|
||||
|
|
@ -124,9 +127,9 @@ jobs:
|
|||
|
||||
- name: 'cache openssl-prev'
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
id: cache-openssl-prev-http3-no-deprecated
|
||||
id: cache-openssl-prev-http3
|
||||
env:
|
||||
cache-name: cache-openssl-prev-http3-no-deprecated
|
||||
cache-name: cache-openssl-prev-http3
|
||||
with:
|
||||
path: ~/openssl-prev/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.OPENSSL_PREV_VERSION }}
|
||||
|
|
@ -187,6 +190,15 @@ jobs:
|
|||
key: "${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.NGHTTP2_VERSION }}-${{ env.OPENSSL_VERSION }}-\
|
||||
${{ env.NGTCP2_VERSION }}-${{ env.NGHTTP3_VERSION }}"
|
||||
|
||||
- name: 'cache h2o'
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
id: cache-h2o
|
||||
env:
|
||||
cache-name: cache-h2o
|
||||
with:
|
||||
path: ~/h2o/build
|
||||
key: "${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.H2O_VERSION }}-${{ env.OPENSSL_PREV_VERSION }}"
|
||||
|
||||
- id: settings
|
||||
if: >-
|
||||
${{ !steps.cache-awslc.outputs.cache-hit ||
|
||||
|
|
@ -195,13 +207,14 @@ jobs:
|
|||
!steps.cache-gnutls.outputs.cache-hit ||
|
||||
!steps.cache-libressl.outputs.cache-hit ||
|
||||
!steps.cache-openssl-http3-no-deprecated.outputs.cache-hit ||
|
||||
!steps.cache-openssl-prev-http3-no-deprecated.outputs.cache-hit ||
|
||||
!steps.cache-openssl-prev-http3.outputs.cache-hit ||
|
||||
!steps.cache-wolfssl.outputs.cache-hit ||
|
||||
!steps.cache-nghttp3.outputs.cache-hit ||
|
||||
!steps.cache-ngtcp2-boringssl.outputs.cache-hit ||
|
||||
!steps.cache-ngtcp2-openssl-prev.outputs.cache-hit ||
|
||||
!steps.cache-ngtcp2.outputs.cache-hit ||
|
||||
!steps.cache-nghttp2.outputs.cache-hit }}
|
||||
!steps.cache-nghttp2.outputs.cache-hit ||
|
||||
!steps.cache-h2o.outputs.cache-hit }}
|
||||
|
||||
run: echo 'needs-build=true' >> "$GITHUB_OUTPUT"
|
||||
|
||||
|
|
@ -216,6 +229,7 @@ jobs:
|
|||
libtool autoconf automake pkgconf \
|
||||
libbrotli-dev libzstd-dev zlib1g-dev \
|
||||
libev-dev \
|
||||
libuv1-dev \
|
||||
libc-ares-dev \
|
||||
libp11-kit-dev autopoint bison gperf gtk-doc-tools libtasn1-bin # for GnuTLS
|
||||
echo 'CC=gcc-12' >> "$GITHUB_ENV"
|
||||
|
|
@ -298,14 +312,14 @@ jobs:
|
|||
make -j1 install_sw
|
||||
|
||||
- name: 'build openssl-prev'
|
||||
if: ${{ !steps.cache-openssl-prev-http3-no-deprecated.outputs.cache-hit }}
|
||||
if: ${{ !steps.cache-openssl-prev-http3.outputs.cache-hit }}
|
||||
run: |
|
||||
cd ~
|
||||
curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 120 --retry 6 --retry-connrefused \
|
||||
--location --proto-redir =https "https://github.com/openssl/openssl/releases/download/openssl-${OPENSSL_PREV_VERSION}/openssl-${OPENSSL_PREV_VERSION}.tar.gz" --output pkg.bin
|
||||
sha256sum pkg.bin | tee /dev/stderr | grep -qwF -- "${OPENSSL_PREV_SHA256}" && tar -xzf pkg.bin && rm -f pkg.bin
|
||||
cd "openssl-${OPENSSL_PREV_VERSION}"
|
||||
./config --prefix=/home/runner/openssl-prev/build --libdir=lib no-makedepend no-apps no-docs no-tests no-deprecated
|
||||
./config --prefix=/home/runner/openssl-prev/build --libdir=lib no-makedepend no-apps no-docs no-tests
|
||||
make
|
||||
make -j1 install_sw
|
||||
|
||||
|
|
@ -399,6 +413,18 @@ jobs:
|
|||
--with-libbrotlienc --with-libbrotlidec
|
||||
make install
|
||||
|
||||
- name: 'build h2o'
|
||||
if: ${{ !steps.cache-h2o.outputs.cache-hit }}
|
||||
run: |
|
||||
cd ~
|
||||
curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 120 --retry 6 --retry-connrefused \
|
||||
--location --proto-redir =https "https://github.com/h2o/h2o/archive/${H2O_VERSION}.tar.gz" --output pkg.bin
|
||||
sha256sum pkg.bin | tee /dev/stderr | grep -qwF -- "${H2O_SHA256}" && tar -xzf pkg.bin && rm -f pkg.bin
|
||||
cd "h2o-${H2O_VERSION}"
|
||||
cmake -B . -G Ninja -DWITHOUT_LIBS=ON -DOPENSSL_ROOT_DIR=/home/runner/openssl-prev/build -DCMAKE_INSTALL_PREFIX=/home/runner/h2o/build
|
||||
cmake --build .
|
||||
cmake --install .
|
||||
|
||||
linux:
|
||||
name: ${{ matrix.build.generate && 'CM' || 'AM' }} ${{ matrix.build.name }}
|
||||
needs: build-cache
|
||||
|
|
@ -483,7 +509,7 @@ jobs:
|
|||
LDFLAGS: -Wl,-rpath,/home/runner/openssl/build/lib
|
||||
PKG_CONFIG_PATH: /home/runner/openssl/build/lib/pkgconfig:/home/runner/nghttp3/build/lib/pkgconfig:/home/runner/nghttp2/build/lib/pkgconfig
|
||||
configure: >-
|
||||
--with-openssl=/home/runner/openssl/build --with-ngtcp2=/home/runner/ngtcp2/build --enable-ech --enable-ssls-export
|
||||
--with-openssl=/home/runner/openssl/build --with-ngtcp2=/home/runner/ngtcp2/build --enable-ech --enable-ssls-export --enable-proxy-http3
|
||||
|
||||
- name: 'openssl'
|
||||
install_steps: skipall
|
||||
|
|
@ -491,7 +517,7 @@ jobs:
|
|||
generate: >-
|
||||
-DOPENSSL_ROOT_DIR=/home/runner/openssl/build -DUSE_NGTCP2=ON
|
||||
-DCURL_DISABLE_LDAP=ON
|
||||
-DUSE_ECH=ON
|
||||
-DUSE_ECH=ON -DUSE_PROXY_HTTP3=ON
|
||||
-DCMAKE_UNITY_BUILD=ON
|
||||
|
||||
- name: 'openssl-prev'
|
||||
|
|
@ -638,9 +664,9 @@ jobs:
|
|||
- name: 'cache openssl-prev'
|
||||
if: ${{ contains(matrix.build.name, 'openssl-prev') }}
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
id: cache-openssl-prev-http3-no-deprecated
|
||||
id: cache-openssl-prev-http3
|
||||
env:
|
||||
cache-name: cache-openssl-prev-http3-no-deprecated
|
||||
cache-name: cache-openssl-prev-http3
|
||||
with:
|
||||
path: ~/openssl-prev/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.OPENSSL_PREV_VERSION }}
|
||||
|
|
@ -710,6 +736,16 @@ jobs:
|
|||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.NGHTTP2_VERSION }}-${{ env.OPENSSL_VERSION }}-${{ env.NGTCP2_VERSION }}-${{ env.NGHTTP3_VERSION }}
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: 'cache h2o'
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
id: cache-h2o
|
||||
env:
|
||||
cache-name: cache-h2o
|
||||
with:
|
||||
path: ~/h2o/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.H2O_VERSION }}-${{ env.OPENSSL_PREV_VERSION }}
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: 'cache quiche'
|
||||
if: ${{ contains(matrix.build.name, 'quiche') }}
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
|
|
@ -761,6 +797,7 @@ jobs:
|
|||
-DCURL_WERROR=ON -DENABLE_DEBUG=ON \
|
||||
-DCURL_USE_LIBUV=ON -DCURL_ENABLE_NTLM=ON \
|
||||
-DTEST_NGHTTPX=/home/runner/nghttp2/build/bin/nghttpx \
|
||||
-DH2O=/home/runner/h2o/build/bin/h2o \
|
||||
-DHTTPD_NGHTTPX=/home/runner/nghttp2/build/bin/nghttpx \
|
||||
${MATRIX_GENERATE} ${options}
|
||||
else
|
||||
|
|
@ -768,6 +805,7 @@ jobs:
|
|||
mkdir bld && cd bld && ../configure --enable-warnings --enable-werror --enable-debug --disable-static \
|
||||
--disable-dependency-tracking --enable-option-checking=fatal \
|
||||
--with-libuv --enable-ntlm \
|
||||
--with-test-h2o=/home/runner/h2o/build/bin/h2o \
|
||||
--with-test-nghttpx=/home/runner/nghttp2/build/bin/nghttpx \
|
||||
${MATRIX_CONFIGURE}
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue