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
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
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:
- 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"
- 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
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
- 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
- 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
- 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
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 ####
# /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