path: ~/.ccache
key: dnsdist-${{ matrix.features }}-${{ matrix.sanitizers }}-ccache-${{ steps.get-stamp.outputs.stamp }}
restore-keys: dnsdist-${{ matrix.features }}-${{ matrix.sanitizers }}-ccache-
+ - run: inv ci-install-rust ${{ env.REPO_HOME }}
+ working-directory: ./pdns/dnsdistdist/
+ - run: inv ci-build-and-install-quiche
+ working-directory: ./pdns/dnsdistdist/
- run: inv ci-autoconf
working-directory: ./pdns/dnsdistdist/
- run: inv ci-dnsdist-configure ${{ matrix.features }}
clang_version = os.getenv('CLANG_VERSION', '13')
rust_version = 'rust-1.72.0-x86_64-unknown-linux-gnu'
+quiche_version = '0.18.0'
+quiche_hash = 'eb242a14c4d801a90b57b6021dd29f7a62099f3a4d7a7ba889e105f8328e6c1f'
all_build_deps = [
'ccache',
--enable-dnscrypt \
--enable-dns-over-tls \
--enable-dns-over-https \
+ --enable-dns-over-quic \
--enable-systemd \
--prefix=/opt/dnsdist \
--with-gnutls \
--form description="master build" \
https://scan.coverity.com/builds?project={project}', hide=True)
+@task
+def ci_build_and_install_quiche(c):
+ # we have to pass -L because GitHub will do a redirect, sadly
+ c.run(f'curl -L -o quiche-{quiche_version}.tar.gz https://github.com/cloudflare/quiche/archive/{quiche_version}.tar.gz')
+ # Line below should echo two spaces between digest and name
+ c.run(f'echo {quiche_hash}" "quiche-{quiche_version}.tar.gz | sha256sum -c -')
+ c.run(f'tar xf quiche-{quiche_version}.tar.gz')
+ with c.cd(f'quiche-{quiche_version}'):
+ c.run('cargo build --release --no-default-features --features ffi,pkg-config-meta,qlog,boringssl-boring-crate --package quiche')
+ c.run('ls quiche/include/quiche.h target/release/libquiche.a /usr/include /usr/lib /usr/lib/pkgconfig')
+ # cannot use c.sudo() inside a cd() context, see https://github.com/pyinvoke/invoke/issues/687
+ c.run('sudo install -Dm644 quiche/include/quiche.h /usr/include')
+ c.run('sudo install -Dm644 target/release/libquiche.a /usr/lib')
+ c.run("""sudo install -Dm644 /dev/stdin /usr/lib/pkgconfig/quiche.pc <<PC
+# quiche
+Name: quiche
+Description: quiche library
+URL: https://github.com/cloudflare/quiche
+Version: $pkgver
+Libs: -lquiche
+PC""")
+
# this is run always
def setup():
if '/usr/lib/ccache' not in os.environ['PATH']: