ngtcp2-wolfssl.yml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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-wolfssl-${{ 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: wolfssl
  32. install: >-
  33. libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev
  34. configure: >-
  35. PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/all/lib"
  36. --with-ngtcp2=$HOME/all --enable-warnings --enable-werror --enable-debug
  37. --with-test-nghttpx="$HOME/all/bin/nghttpx"
  38. ngtcp2-configure: >-
  39. --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-lib-only
  40. wolfssl-configure: >-
  41. --enable-quic --enable-session-ticket --enable-earlydata --enable-psk
  42. --enable-harden --enable-altcertchains
  43. steps:
  44. - run: |
  45. sudo apt-get update
  46. sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
  47. sudo python3 -m pip install impacket
  48. name: 'install prereqs and impacket'
  49. - run: |
  50. git clone https://github.com/wolfSSL/wolfssl.git
  51. cd wolfssl
  52. ./autogen.sh
  53. ./configure ${{ matrix.build.wolfssl-configure }} --prefix=$HOME/all
  54. make install
  55. name: 'install wolfssl'
  56. - run: |
  57. git clone --depth=1 -b openssl-3.0.8+quic https://github.com/quictls/openssl
  58. cd openssl
  59. ./config --prefix=$HOME/all --libdir=$HOME/all/lib
  60. make install_sw
  61. name: 'install quictls'
  62. - run: |
  63. git clone --depth=1 -b v0.8.0 https://github.com/ngtcp2/nghttp3
  64. cd nghttp3
  65. autoreconf -fi
  66. ./configure --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-lib-only
  67. make install
  68. name: 'install nghttp3'
  69. - run: |
  70. git clone --depth=1 -b v0.13.1 https://github.com/ngtcp2/ngtcp2
  71. cd ngtcp2
  72. autoreconf -fi
  73. ./configure ${{ matrix.build.ngtcp2-configure }} --with-openssl --with-wolfssl
  74. make install
  75. name: 'install ngtcp2'
  76. - run: |
  77. git clone --depth=1 -b v1.52.0 https://github.com/nghttp2/nghttp2
  78. cd nghttp2
  79. autoreconf -fi
  80. ./configure --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-http3
  81. make install
  82. name: 'install nghttp2'
  83. - uses: actions/checkout@v3
  84. - run: autoreconf -fi
  85. name: 'autoreconf'
  86. - run: ./configure --with-wolfssl=$HOME/all ${{ matrix.build.configure }}
  87. name: 'configure'
  88. - run: make V=1
  89. name: 'make'
  90. - run: make V=1 examples
  91. name: 'make examples'
  92. - run: make V=1 -C tests
  93. name: 'make tests'
  94. - run: make V=1 test-ci
  95. name: 'run tests'
  96. env:
  97. TFLAGS: "${{ matrix.build.tflags }}"