eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ci.yml 2.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. name: CI
  2. on:
  3. push:
  4. branches: [ master ]
  5. pull_request:
  6. branches: [ master ]
  7. jobs:
  8. build:
  9. runs-on: ubuntu-latest
  10. name: Build with ${{ matrix.sanitizer }} sanitizer
  11. strategy:
  12. matrix:
  13. sanitizer: [no, address, leak, memory, thread, undefined, valgrind]
  14. include:
  15. - sanitizer: "no"
  16. deps: ""
  17. configflags: ""
  18. config: ""
  19. build_env: ""
  20. check_env: ""
  21. - sanitizer: "address"
  22. deps: ""
  23. configflags: 'CFLAGS="-fsanitize=address -g -Og" CXXFLAGS="-fsanitize=address -g -Og"'
  24. config: ""
  25. build_env: "ASAN_OPTIONS=detect_leaks=0"
  26. check_env: "ASAN_OPTIONS=detect_leaks=0"
  27. - sanitizer: "leak"
  28. deps: ""
  29. configflags: 'CFLAGS="-fsanitize=leak -g -Og" CXXFLAGS="-fsanitize=leak -g -Og"'
  30. config: ""
  31. build_env: "LSAN_OPTIONS=fast_unwind_on_malloc=0"
  32. check_env: "LSAN_OPTIONS=fast_unwind_on_malloc=0"
  33. - sanitizer: "memory"
  34. deps: "clang"
  35. configflags: 'CC=clang CXX=clang++ CFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -g -Og" CXXFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -g -Og"'
  36. config: "--without-pcaudiolib"
  37. build_env: "MSAN_OPTIONS=exitcode=42"
  38. check_env: "MSAN_OPTIONS=exitcode=42"
  39. - sanitizer: "thread"
  40. deps: ""
  41. configflags: 'CFLAGS="-fsanitize=thread -g -Og" CXXFLAGS="-fsanitize=thread -g -Og"'
  42. config: ""
  43. build_env: ""
  44. check_env: ""
  45. - sanitizer: "undefined"
  46. deps: ""
  47. configflags: 'CFLAGS="-fsanitize=undefined -g -Og" CXXFLAGS="-fsanitize=undefined -g -Og"'
  48. config: ""
  49. build_env: "UBSAN_OPTIONS=halt_on_error=1"
  50. check_env: "UBSAN_OPTIONS=halt_on_error=1"
  51. - sanitizer: "valgrind"
  52. deps: "libtool-bin valgrind"
  53. configflags: ''
  54. config: ""
  55. build_env: 'VALGRIND="libtool --mode=execute valgrind --track-origins=yes --leak-check=full --error-exitcode=1" '
  56. check_env: 'VALGRIND="libtool --mode=execute valgrind --track-origins=yes --leak-check=full --error-exitcode=1" '
  57. steps:
  58. - uses: actions/checkout@v2
  59. - name: dependencies
  60. run: sudo apt-get update && sudo apt-get install libpcaudio-dev libsonic-dev ronn kramdown ${{ matrix.deps }}
  61. - name: autoconf
  62. run: ./autogen.sh ; chmod -x INSTALL m4/*.m4
  63. - name: configure
  64. run: ${{ matrix.configflags }} ./configure ${{ matrix.config }}
  65. - name: make
  66. run: ${{ matrix.build_env }} make
  67. - name: make check
  68. run: ${{ matrix.check_env }} make check