hitch.yml 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. name: hitch Tests
  2. # START OF COMMON SECTION
  3. on:
  4. push:
  5. branches: [ 'master', 'main', 'release/**' ]
  6. pull_request:
  7. branches: [ '*' ]
  8. concurrency:
  9. group: ${{ github.workflow }}-${{ github.ref }}
  10. cancel-in-progress: true
  11. # END OF COMMON SECTION
  12. jobs:
  13. build_wolfssl:
  14. name: Build wolfSSL
  15. # Just to keep it the same as the testing target
  16. runs-on: ubuntu-latest
  17. # This should be a safe limit for the tests to run.
  18. timeout-minutes: 4
  19. steps:
  20. - name: Build wolfSSL
  21. uses: wolfSSL/actions-build-autotools-project@v1
  22. with:
  23. path: wolfssl
  24. configure: --enable-hitch
  25. install: true
  26. - name: Upload built lib
  27. uses: actions/upload-artifact@v4
  28. with:
  29. name: wolf-install-hitch
  30. path: build-dir
  31. retention-days: 5
  32. hitch_check:
  33. strategy:
  34. fail-fast: false
  35. matrix:
  36. # List of releases to test
  37. include:
  38. - ref: 1.7.3
  39. ignore-tests: >-
  40. test13-r82.sh test15-proxy-v2-npn.sh test39-client-cert-proxy.sh
  41. name: ${{ matrix.ref }}
  42. runs-on: ubuntu-latest
  43. # This should be a safe limit for the tests to run.
  44. timeout-minutes: 4
  45. needs: build_wolfssl
  46. steps:
  47. - name: Download lib
  48. uses: actions/download-artifact@v4
  49. with:
  50. name: wolf-install-hitch
  51. path: build-dir
  52. - name: Checkout OSP
  53. uses: actions/checkout@v4
  54. with:
  55. repository: wolfssl/osp
  56. path: osp
  57. - name: Install dependencies
  58. run: |
  59. export DEBIAN_FRONTEND=noninteractive
  60. sudo apt-get update
  61. sudo apt-get install -y libev-dev libssl-dev automake python3-docutils flex bison pkg-config make
  62. - name: Checkout hitch
  63. uses: actions/checkout@v4
  64. with:
  65. repository: varnish/hitch
  66. ref: 1.7.3
  67. path: hitch
  68. # Do this before configuring so that it only detects the updated list of
  69. # tests
  70. - if: ${{ matrix.ignore-tests }}
  71. name: Remove tests that we want to ignore
  72. working-directory: ./hitch/src/tests
  73. run: |
  74. rm ${{ matrix.ignore-tests }}
  75. - name: Configure and build hitch
  76. run: |
  77. cd $GITHUB_WORKSPACE/hitch/
  78. patch -p1 < $GITHUB_WORKSPACE/osp/hitch/hitch_1.7.3.patch
  79. autoreconf -ivf
  80. SSL_CFLAGS="-I$GITHUB_WORKSPACE/build-dir/include/ -I$GITHUB_WORKSPACE/build-dir/include/wolfssl" SSL_LIBS="-L$GITHUB_WORKSPACE/build-dir/lib -lwolfssl" ./configure --with-wolfssl=$GITHUB_WORKSPACE/build-dir/ --enable-silent-rules --enable-documentation --enable-warnings --with-lex --with-yacc --prefix=$GITHUB_WORKSPACE/build-dir
  81. make -j$(nproc)
  82. - name: Confirm hitch built with wolfSSL
  83. working-directory: ./hitch
  84. run: |
  85. export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/build-dir/lib:$LD_LIBRARY_PATH
  86. ldd src/hitch | grep wolfssl
  87. - name: Run hitch tests, skipping ignored tests
  88. working-directory: ./hitch
  89. run: |
  90. export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/build-dir/lib:$LD_LIBRARY_PATH
  91. make check