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.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. fail-fast: false
  13. matrix:
  14. sanitizer: [no, address, leak, memory, thread, undefined, valgrind]
  15. include:
  16. - sanitizer: "no"
  17. deps: ""
  18. configflags: ""
  19. config: ""
  20. build_env: ""
  21. check_env: ""
  22. - sanitizer: "address"
  23. deps: ""
  24. configflags: 'CFLAGS="-fsanitize=address -g -Og" CXXFLAGS="-fsanitize=address -g -Og"'
  25. config: ""
  26. build_env: "ASAN_OPTIONS=detect_leaks=0"
  27. check_env: "ASAN_OPTIONS=detect_leaks=0"
  28. - sanitizer: "leak"
  29. deps: ""
  30. configflags: 'CFLAGS="-fsanitize=leak -g -Og" CXXFLAGS="-fsanitize=leak -g -Og"'
  31. config: ""
  32. build_env: "LSAN_OPTIONS=fast_unwind_on_malloc=0"
  33. check_env: "LSAN_OPTIONS=fast_unwind_on_malloc=0"
  34. - sanitizer: "memory"
  35. deps: "clang"
  36. 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"'
  37. config: "--without-pcaudiolib"
  38. build_env: "MSAN_OPTIONS=exitcode=42"
  39. check_env: "MSAN_OPTIONS=exitcode=42"
  40. - sanitizer: "thread"
  41. deps: ""
  42. configflags: 'CFLAGS="-fsanitize=thread -g -Og" CXXFLAGS="-fsanitize=thread -g -Og"'
  43. config: ""
  44. build_env: ""
  45. check_env: ""
  46. - sanitizer: "undefined"
  47. deps: ""
  48. configflags: 'CFLAGS="-fsanitize=undefined -g -Og" CXXFLAGS="-fsanitize=undefined -g -Og"'
  49. config: ""
  50. build_env: "UBSAN_OPTIONS=halt_on_error=1"
  51. check_env: "UBSAN_OPTIONS=halt_on_error=1"
  52. - sanitizer: "valgrind"
  53. deps: "libtool-bin valgrind"
  54. configflags: ''
  55. config: ""
  56. build_env: 'VALGRIND="libtool --mode=execute valgrind --track-origins=yes --leak-check=full --error-exitcode=1" '
  57. check_env: 'VALGRIND="libtool --mode=execute valgrind --track-origins=yes --leak-check=full --error-exitcode=1" '
  58. steps:
  59. - uses: actions/checkout@v2
  60. - name: dependencies
  61. run: sudo apt-get update && sudo apt-get install libpcaudio-dev libsonic-dev ronn kramdown ${{ matrix.deps }}
  62. - name: autoconf
  63. run: ./autogen.sh ; chmod -x INSTALL m4/*.m4
  64. - name: configure
  65. run: ${{ matrix.configflags }} ./configure ${{ matrix.config }}
  66. - name: Store the config
  67. if: ${{ failure() }}
  68. uses: actions/upload-artifact@v2
  69. with:
  70. name: config-${{ matrix.sanitizer }}.log
  71. path: config.log
  72. - name: make
  73. run: ${{ matrix.build_env }} make
  74. - name: make check
  75. run: ${{ matrix.check_env }} make check