curl.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. name: curl Test
  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. runs-on: ubuntu-latest
  16. # This should be a safe limit for the tests to run.
  17. timeout-minutes: 4
  18. steps:
  19. - name: Build wolfSSL
  20. uses: wolfSSL/actions-build-autotools-project@v1
  21. with:
  22. path: wolfssl
  23. configure: --enable-curl
  24. install: true
  25. - name: tar build-dir
  26. run: tar -zcf build-dir.tgz build-dir
  27. - name: Upload built lib
  28. uses: actions/upload-artifact@v4
  29. with:
  30. name: wolf-install-curl
  31. path: build-dir.tgz
  32. retention-days: 5
  33. test_curl:
  34. name: ${{ matrix.curl_ref }}
  35. runs-on: ubuntu-latest
  36. # This should be a safe limit for the tests to run.
  37. timeout-minutes: 15
  38. needs: build_wolfssl
  39. strategy:
  40. fail-fast: false
  41. matrix:
  42. curl_ref: [ 'master', 'curl-8_4_0' ]
  43. steps:
  44. - name: Install test dependencies
  45. run: |
  46. sudo apt-get update
  47. sudo apt-get install nghttp2 libpsl5 libpsl-dev
  48. sudo pip install impacket
  49. - name: Download lib
  50. uses: actions/download-artifact@v4
  51. with:
  52. name: wolf-install-curl
  53. - name: untar build-dir
  54. run: tar -xf build-dir.tgz
  55. - name: Build curl
  56. uses: wolfSSL/actions-build-autotools-project@v1
  57. with:
  58. repository: curl/curl
  59. path: curl
  60. ref: ${{ matrix.curl_ref }}
  61. configure: --with-wolfssl=$GITHUB_WORKSPACE/build-dir
  62. check: false
  63. - name: Test curl
  64. working-directory: curl
  65. run: make -j test-ci