From: Stefan Eissing Date: Thu, 27 Jul 2023 12:26:39 +0000 (+0200) Subject: CI: quiche updates X-Git-Tag: curl-8_3_0~289 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2284104c3f238d6a91bd36338a0f66092462c0f0;p=thirdparty%2Fcurl.git CI: quiche updates - remove quiche from standard `linux` workflow - add mod_h2 caching to quiche workflow - rename quiche to quiche-linux - move version definitions into env section Closes #11528 --- diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 0940bb3417..0bcb09e1d1 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -52,11 +52,6 @@ jobs: fail-fast: false matrix: build: - - name: quiche - install_packages: zlib1g-dev valgrind - install_steps: quiche pytest - configure: LDFLAGS="-Wl,-rpath,/home/runner/work/curl/curl/quiche/target/release" --with-openssl=/home/runner/work/curl/curl/quiche/quiche/deps/boringssl/src --enable-debug --with-quiche=/home/runner/work/curl/curl/quiche/target/release - - name: bearssl install_packages: zlib1g-dev valgrind install_steps: bearssl pytest @@ -201,27 +196,6 @@ jobs: make install name: 'install libressl' - - if: ${{ contains(matrix.build.install_steps, 'quiche') }} - run: | - git clone --quiet --depth=1 --recursive https://github.com/cloudflare/quiche.git - cd quiche - #### Work-around https://github.com/curl/curl/issues/7927 ####### - #### See https://github.com/alexcrichton/cmake-rs/issues/131 #### - sed -i -e 's/cmake = "0.1"/cmake = "=0.1.45"/' quiche/Cargo.toml - - # /home/runner/work/curl/curl/boringssl - - cargo build -v --package quiche --release --features ffi,pkg-config-meta,qlog --verbose - mkdir -v quiche/deps/boringssl/src/lib - ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) quiche/deps/boringssl/src/lib/ - - # include dir - # /home/runner/work/curl/curl/quiche/quiche/deps/boringssl/src/include - # lib dir - # /home/runner/work/curl/curl/quiche/quiche/deps/boringssl/src/lib - - name: 'build quiche and boringssl' - - if: ${{ contains(matrix.build.install_steps, 'mbedtls') }} run: | git clone --quiet --depth=1 -b v3.3.0 https://github.com/ARMmbed/mbedtls diff --git a/.github/workflows/quiche.yml b/.github/workflows/quiche-linux.yml similarity index 78% rename from .github/workflows/quiche.yml rename to .github/workflows/quiche-linux.yml index a165eebd76..0f61120684 100644 --- a/.github/workflows/quiche.yml +++ b/.github/workflows/quiche-linux.yml @@ -46,6 +46,12 @@ permissions: {} env: MAKEFLAGS: -j 3 + openssl-version: 3.0.9+quic + nghttp3-version: v0.13.0 + ngtcp2-version: v0.17.0 + nghttp2-version: v1.55.1 + quiche-version: 0.17.2 + mod_h2-version: v2.0.21 jobs: autotools: @@ -59,11 +65,6 @@ jobs: - name: quiche install: >- libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev - openssl-version: 3.0.9+quic - nghttp3-version: v0.13.0 - ngtcp2-version: v0.17.0 - nghttp2-version: v1.55.1 - quiche-version: 0.17.2 install_steps: pytest configure: >- LDFLAGS="-Wl,-rpath,/home/runner/quiche/target/release" @@ -76,7 +77,7 @@ jobs: - run: | sudo apt-get update sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }} - sudo apt-get install apache2 apache2-dev + sudo apt-get install apache2 apache2-dev libnghttp2-dev name: 'install prereqs and impacket, pytest, crypto' - name: cache nghttpx @@ -86,11 +87,11 @@ jobs: cache-name: cache-nghttpx with: path: /home/runner/nghttpx - key: ${{ runner.os }}-build-${{ env.cache-name }}-openssl-${{ matrix.build.openssl-version }}-nghttp3-${{ matrix.build.nghttp3-version }}-ngtcp2-${{ matrix.build.ngtcp2-version }}-nghttp2-${{ matrix.build.nghttp2-version }} + key: ${{ runner.os }}-build-${{ env.cache-name }}-openssl-${{ env.openssl-version }}-nghttp3-${{ env.nghttp3-version }}-ngtcp2-${{ env.ngtcp2-version }}-nghttp2-${{ env.nghttp2-version }} - if: steps.cache-nghttpx.outputs.cache-hit != 'true' run: | - git clone --quiet --depth=1 -b openssl-${{ matrix.build.openssl-version }} https://github.com/quictls/openssl + git clone --quiet --depth=1 -b openssl-${{ env.openssl-version }} https://github.com/quictls/openssl cd openssl ./config --prefix=$HOME/nghttpx --libdir=$HOME/nghttpx/lib make -j1 install_sw @@ -98,7 +99,7 @@ jobs: - if: steps.cache-nghttpx.outputs.cache-hit != 'true' run: | - git clone --quiet --depth=1 -b ${{ matrix.build.nghttp3-version }} https://github.com/ngtcp2/nghttp3 + git clone --quiet --depth=1 -b ${{ env.nghttp3-version }} https://github.com/ngtcp2/nghttp3 cd nghttp3 autoreconf -fi ./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only @@ -107,7 +108,7 @@ jobs: - if: steps.cache-nghttpx.outputs.cache-hit != 'true' run: | - git clone --quiet --depth=1 -b ${{ matrix.build.ngtcp2-version }} https://github.com/ngtcp2/ngtcp2 + git clone --quiet --depth=1 -b ${{ env.ngtcp2-version }} https://github.com/ngtcp2/ngtcp2 cd ngtcp2 autoreconf -fi ./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only --with-openssl @@ -116,7 +117,7 @@ jobs: - if: steps.cache-nghttpx.outputs.cache-hit != 'true' run: | - git clone --quiet --depth=1 -b ${{ matrix.build.nghttp2-version }} https://github.com/nghttp2/nghttp2 + git clone --quiet --depth=1 -b ${{ env.nghttp2-version }} https://github.com/nghttp2/nghttp2 cd nghttp2 autoreconf -fi ./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-http3 @@ -130,12 +131,12 @@ jobs: cache-name: cache-quiche with: path: /home/runner/quiche - key: ${{ runner.os }}-build-${{ env.cache-name }}-quiche-${{ matrix.build.quiche-version }} + key: ${{ runner.os }}-build-${{ env.cache-name }}-quiche-${{ env.quiche-version }} - if: steps.cache-quiche.outputs.cache-hit != 'true' run: | cd $HOME - git clone --quiet --depth=1 -b ${{ matrix.build.quiche-version }} --recursive https://github.com/cloudflare/quiche.git + git clone --quiet --depth=1 -b ${{ env.quiche-version }} --recursive https://github.com/cloudflare/quiche.git cd quiche #### Work-around https://github.com/curl/curl/issues/7927 ####### #### See https://github.com/alexcrichton/cmake-rs/issues/131 #### @@ -151,16 +152,29 @@ jobs: # /home/runner/quiche/quiche/deps/boringssl/src/lib name: 'build quiche and boringssl' - - if: ${{ contains(matrix.build.install_steps, 'pytest') }} + - name: cache mod_h2 + uses: actions/cache@v3 + id: cache-mod_h2 + env: + cache-name: cache-mod_h2 + with: + path: /home/runner/mod_h2 + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }} + + - if: steps.cache-mod_h2.outputs.cache-hit != 'true' run: | - sudo apt-get install apache2 apache2-dev libnghttp2-dev - git clone --quiet --depth=1 -b master https://github.com/icing/mod_h2 + cd $HOME + git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2 cd mod_h2 autoreconf -fi ./configure make + name: 'build mod_h2' + + - run: | + cd $HOME/mod_h2 sudo make install - name: 'install apach2-dev and mod-h2' + name: 'install mod_h2' - uses: actions/checkout@v3