test.yaml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. name: test
  2. on: [push, pull_request]
  3. jobs:
  4. ubuntu:
  5. runs-on: ubuntu-latest
  6. steps:
  7. - name: checkout
  8. uses: actions/checkout@v4
  9. - name: install libraries
  10. run: sudo apt-get update && sudo apt-get install -y libbrotli-dev libcurl4-openssl-dev
  11. - name: build and run tests
  12. run: cd test && make
  13. - name: run fuzz test target
  14. run: cd test && make fuzz_test
  15. macos:
  16. runs-on: macos-latest
  17. steps:
  18. - name: checkout
  19. uses: actions/checkout@v4
  20. - name: build and run tests
  21. run: cd test && make
  22. - name: run fuzz test target
  23. run: cd test && make fuzz_test
  24. windows:
  25. runs-on: windows-latest
  26. steps:
  27. - name: Prepare Git for Checkout on Windows
  28. run: |
  29. git config --global core.autocrlf false
  30. git config --global core.eol lf
  31. - name: Checkout
  32. uses: actions/checkout@v4
  33. - name: Export GitHub Actions cache environment variables
  34. uses: actions/github-script@v7
  35. with:
  36. script: |
  37. core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
  38. core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
  39. - name: Setup msbuild on windows
  40. uses: microsoft/setup-msbuild@v2
  41. - name: Install libraries
  42. run: |
  43. vcpkg install gtest curl zlib brotli
  44. choco install openssl
  45. - name: Configure CMake with SSL
  46. run: cmake -B build -S . -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake -DHTTPLIB_TEST=ON -DHTTPLIB_REQUIRE_OPENSSL=ON -DHTTPLIB_REQUIRE_ZLIB=ON -DHTTPLIB_REQUIRE_BROTLI=ON
  47. - name: Build with with SSL
  48. run: cmake --build build --config Release
  49. - name: Run tests with SSL
  50. run: ctest --output-on-failure --test-dir build -C Release
  51. - name: Configure CMake without SSL
  52. run: cmake -B build-no-ssl -S . -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake -DHTTPLIB_TEST=ON -DHTTPLIB_REQUIRE_OPENSSL=ON -DHTTPLIB_REQUIRE_ZLIB=ON -DHTTPLIB_REQUIRE_BROTLI=ON
  53. - name: Build without SSL
  54. run: cmake --build build-no-ssl --config Release
  55. - name: Run tests without SSL
  56. run: ctest --output-on-failure --test-dir build-no-ssl -C Release
  57. env:
  58. VCPKG_ROOT: "C:/vcpkg"
  59. VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"