krb5.yml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. name: Kerberos 5 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: 5
  19. steps:
  20. - name: workaround high-entropy ASLR
  21. # not needed after either an update to llvm or runner is done
  22. run: sudo sysctl vm.mmap_rnd_bits=28
  23. - name: Build wolfSSL
  24. uses: wolfSSL/actions-build-autotools-project@v1
  25. with:
  26. path: wolfssl
  27. configure: --enable-krb CC='gcc -fsanitize=address'
  28. install: true
  29. - name: Upload built lib
  30. uses: actions/upload-artifact@v4
  31. with:
  32. name: wolf-install-krb5
  33. path: build-dir
  34. retention-days: 5
  35. krb5_check:
  36. strategy:
  37. fail-fast: false
  38. matrix:
  39. # List of releases to test
  40. ref: [ 1.21.1 ]
  41. name: ${{ matrix.ref }}
  42. runs-on: ubuntu-latest
  43. # This should be a safe limit for the tests to run.
  44. timeout-minutes: 8
  45. needs: build_wolfssl
  46. steps:
  47. - name: Download lib
  48. uses: actions/download-artifact@v4
  49. with:
  50. name: wolf-install-krb5
  51. path: build-dir
  52. - name: Checkout OSP
  53. uses: actions/checkout@v4
  54. with:
  55. repository: wolfssl/osp
  56. path: osp
  57. - name: Checkout krb5
  58. uses: actions/checkout@v4
  59. with:
  60. repository: krb5/krb5
  61. ref: krb5-${{ matrix.ref }}-final
  62. path: krb5
  63. - name: Apply patch
  64. working-directory: ./krb5
  65. run: |
  66. patch -p1 < $GITHUB_WORKSPACE/osp/krb5/Patch-for-Kerberos-5-${{ matrix.ref }}.patch
  67. - name: workaround high-entropy ASLR
  68. # not needed after either an update to llvm or runner is done
  69. run: sudo sysctl vm.mmap_rnd_bits=28
  70. - name: Build krb5
  71. working-directory: ./krb5/src
  72. run: |
  73. autoreconf -ivf
  74. # Using rpath because LD_LIBRARY_PATH is overwritten during testing
  75. export WOLFSSL_CFLAGS="-I$GITHUB_WORKSPACE/build-dir/include -I$GITHUB_WORKSPACE/build-dir/include/wolfssl -Wl,-rpath=$GITHUB_WORKSPACE/build-dir/lib"
  76. export WOLFSSL_LIBS="-lwolfssl -L$GITHUB_WORKSPACE/build-dir/lib -Wl,-rpath=$GITHUB_WORKSPACE/build-dir/lib"
  77. ./configure --with-crypto-impl=wolfssl --with-tls-impl=wolfssl --disable-pkinit \
  78. CFLAGS='-fsanitize=address' LDFLAGS='-fsanitize=address'
  79. CFLAGS='-fsanitize=address' LDFLAGS='-fsanitize=address' make -j
  80. - name: Run tests
  81. working-directory: ./krb5/src
  82. run: |
  83. CFLAGS='-fsanitize=address' LDFLAGS='-fsanitize=address' make -j check