ngtcp2-gnutls.yml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
  2. #
  3. # SPDX-License-Identifier: curl
  4. name: ngtcp2
  5. on:
  6. push:
  7. branches:
  8. - master
  9. - '*/ci'
  10. paths-ignore:
  11. - '**/*.md'
  12. pull_request:
  13. branches:
  14. - master
  15. paths-ignore:
  16. - '**/*.md'
  17. concurrency:
  18. # Hardcoded workflow filename as workflow name above is just Linux again
  19. group: ngtcp2-gnutls-${{ github.event.pull_request.number || github.sha }}
  20. cancel-in-progress: true
  21. permissions: {}
  22. jobs:
  23. autotools:
  24. name: ${{ matrix.build.name }}
  25. runs-on: 'ubuntu-latest'
  26. timeout-minutes: 60
  27. strategy:
  28. fail-fast: false
  29. matrix:
  30. build:
  31. - name: gnutls
  32. install: >-
  33. libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev
  34. nettle-dev libp11-kit-dev libtspi-dev libunistring-dev guile-2.2-dev libtasn1-bin
  35. libtasn1-6-dev libidn2-0-dev gawk gperf libtss2-dev dns-root-data bison gtk-doc-tools
  36. texinfo texlive texlive-extra-utils autopoint libev-dev
  37. configure: >-
  38. PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/all/lib"
  39. --with-ngtcp2=$HOME/all --enable-warnings --enable-werror --enable-debug
  40. --with-test-nghttpx="$HOME/all/bin/nghttpx"
  41. ngtcp2-configure: >-
  42. --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-lib-only
  43. gnutls-configure: >-
  44. PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/all/lib -L$HOME/all/lib"
  45. --with-included-libtasn1 --with-included-unistring
  46. --disable-guile --disable-doc --disable-tests --disable-tools
  47. steps:
  48. - run: |
  49. sudo apt-get update
  50. sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
  51. sudo python3 -m pip install impacket
  52. name: 'install prereqs and impacket'
  53. - run: |
  54. git clone --depth=1 -b openssl-3.0.8+quic https://github.com/quictls/openssl
  55. cd openssl
  56. ./config --prefix=$HOME/all --libdir=$HOME/all/lib
  57. make install_sw
  58. name: 'install quictls'
  59. - run: |
  60. git clone --depth=1 https://gitlab.com/gnutls/nettle.git
  61. cd nettle
  62. ./.bootstrap
  63. ./configure LDFLAGS="-Wl,-rpath,$HOME/all/lib" ${{ matrix.build.nettle-configure }} --prefix=$HOME/all --libdir=$HOME/all/lib --disable-documentation
  64. make install
  65. name: 'install nettle'
  66. - run: |
  67. git clone --depth=1 -b 3.8.0 https://github.com/gnutls/gnutls.git
  68. cd gnutls
  69. ./bootstrap
  70. ./configure ${{ matrix.build.gnutls-configure }} --prefix=$HOME/all
  71. make install
  72. name: 'install gnutls'
  73. - run: |
  74. git clone --depth=1 -b v0.8.0 https://github.com/ngtcp2/nghttp3
  75. cd nghttp3
  76. autoreconf -fi
  77. ./configure --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-lib-only
  78. make install
  79. name: 'install nghttp3'
  80. - run: |
  81. git clone --depth=1 -b v0.13.1 https://github.com/ngtcp2/ngtcp2
  82. cd ngtcp2
  83. autoreconf -fi
  84. ./configure ${{ matrix.build.ngtcp2-configure }} --with-openssl --with-gnutls
  85. make install
  86. name: 'install ngtcp2'
  87. - run: |
  88. git clone --depth=1 -b v1.52.0 https://github.com/nghttp2/nghttp2
  89. cd nghttp2
  90. autoreconf -fi
  91. ./configure --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-http3
  92. make install
  93. name: 'install nghttp2'
  94. - uses: actions/checkout@v3
  95. - run: autoreconf -fi
  96. name: 'autoreconf'
  97. - run: ./configure --with-gnutls=$HOME/all ${{ matrix.build.configure }}
  98. name: 'configure'
  99. - run: make V=1
  100. name: 'make'
  101. - run: make V=1 examples
  102. name: 'make examples'
  103. - run: make V=1 -C tests
  104. name: 'make tests'
  105. - run: make V=1 test-ci
  106. name: 'run tests'
  107. env:
  108. TFLAGS: "${{ matrix.build.tflags }}"