]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
fixup! fixup! fixup! fixup! fixup! fixup! GHA: Make ngtcp2 cache efficient
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Fri, 31 May 2024 11:16:38 +0000 (20:16 +0900)
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Fri, 31 May 2024 11:16:38 +0000 (20:16 +0900)
.github/workflows/ngtcp2-linux.yml

index 19c309250bcfa42886d018aeab565cd7f11db5fc..ab46ee9acade33358d9704cdcb97df5421065350 100644 (file)
@@ -59,6 +59,8 @@ env:
   ngtcp2-version: 1.5.0
   # renovate: datasource=github-tags depName=nghttp2/nghttp2 versioning=semver registryUrl=https://github.com
   nghttp2-version: 1.62.1
+  # renovate: datasource=github-tags depName=cloudflare/quiche versioning=semver registryUrl=https://github.com
+  quiche-version: 0.21.0
   # renovate: datasource=github-tags depName=icing/mod_h2 versioning=semver registryUrl=https://github.com
   mod_h2-version: 2.0.27
 
@@ -287,6 +289,14 @@ jobs:
               --with-test-nghttpx="$HOME/nghttp2/build/bin/nghttpx"
               --with-openssl=$HOME/openssl3/build --with-openssl-quic
               --with-nghttp3=$HOME/nghttp3/build
+          - name: quiche
+            configure: >-
+              LDFLAGS="-Wl,-rpath,/home/runner/quiche/target/release"
+              --with-openssl=/home/runner/quiche/quiche/deps/boringssl/src
+              --enable-debug
+              --with-quiche=/home/runner/quiche/target/release
+              --with-test-nghttpx="$HOME/nghttp2/build/bin/nghttpx"
+              --with-ca-fallback
 
     steps:
       - run: |
@@ -406,6 +416,35 @@ jobs:
           make -j1 install_sw
           cat exporters/openssl.pc
 
+      - name: cache quiche
+        if: matrix.build.name == 'quiche'
+        uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
+        id: cache-quiche
+        env:
+          cache-name: cache-quiche
+        with:
+          path: /home/runner/quiche
+          key: ${{ runner.os }}-build-${{ env.cache-name }}-quiche-${{ env.quiche-version }}
+
+      - if: matrix.build.name == 'quiche' && steps.cache-quiche.outputs.cache-hit != 'true'
+        run: |
+          cd $HOME
+          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 ####
+          sed -i -e 's/cmake = "0.1"/cmake = "=0.1.45"/' quiche/Cargo.toml
+
+          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/quiche/quiche/deps/boringssl/src/include
+          # lib dir
+          # /home/runner/quiche/quiche/deps/boringssl/src/lib
+        name: 'build quiche and boringssl'
+
       - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
 
       - run: |