| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 | 
							- name: CI
 - 
 - on:
 -   workflow_dispatch:
 -   push:
 -     branches: [ master ]
 -   pull_request:
 -     branches: [ master ]
 - 
 - jobs:
 -   build:
 - 
 -     runs-on: ${{ matrix.os }}
 - 
 -     name: Build with ${{ matrix.sanitizer }} sanitizer on ${{ matrix.os }} ${{ matrix.arch }}
 -     strategy:
 -       fail-fast: false
 -       matrix:
 -         os: [ubuntu-latest, macos-latest]
 -         arch: [x86-64, x86-32]
 -         sanitizer: [no, address, leak, memory, thread, undefined, valgrind]
 - 
 -         include:
 -           - sanitizer: "no"
 -             deps: ""
 -             configflags: "-g -Og -fno-omit-frame-pointer"
 -             config: ""
 -             build_env: ""
 -             check_env: ""
 - 
 -           - sanitizer: "address"
 -             deps: ""
 -             configflags: "-fsanitize=address -g -Og -fno-omit-frame-pointer"
 -             config: ""
 -             build_env: "ASAN_OPTIONS=detect_leaks=0"
 -             check_env: "ASAN_OPTIONS=detect_leaks=0"
 - 
 -           - sanitizer: "leak"
 -             deps: ""
 -             configflags: '-fsanitize=leak -g -Og -fno-omit-frame-pointer'
 -             config: ""
 -             build_env: "LSAN_OPTIONS=fast_unwind_on_malloc=0"
 -             check_env: "LSAN_OPTIONS=fast_unwind_on_malloc=0"
 - 
 -           - sanitizer: "memory"
 -             deps: "clang"
 -             configenv: "CC=clang CXX=clang++"
 -             configflags: "-fsanitize=memory -fsanitize-memory-track-origins=2 -g -Og -fno-omit-frame-pointer"
 -             config: "--without-pcaudiolib"
 -             build_env: "MSAN_OPTIONS=exitcode=42"
 -             check_env: "MSAN_OPTIONS=exitcode=42"
 - 
 -           - sanitizer: "thread"
 -             deps: ""
 -             configflags: "-fsanitize=thread -g -Og -fno-omit-frame-pointer"
 -             config: ""
 -             build_env: ""
 -             check_env: ""
 - 
 -           - sanitizer: "undefined"
 -             deps: ""
 -             configflags: "-fsanitize=undefined -g -Og -fno-omit-frame-pointer"
 -             config: ""
 -             build_env: "UBSAN_OPTIONS=halt_on_error=1"
 -             check_env: "UBSAN_OPTIONS=halt_on_error=1"
 - 
 -           - sanitizer: "valgrind"
 -             deps: "libtool-bin valgrind"
 -             configflags: '-g -Og -fno-omit-frame-pointer'
 -             config: ""
 -             build_env: 'VALGRIND="libtool --mode=execute valgrind --track-origins=yes --leak-check=full --error-exitcode=1" '
 -             check_env: 'VALGRIND="libtool --mode=execute valgrind --track-origins=yes --leak-check=full --error-exitcode=1" '
 - 
 -           - arch: x86-32
 -             archdeps: "gcc-multilib g++-multilib libpcaudio-dev:i386 libsonic-dev:i386 libc6-dbg:i386"
 -             archconfigflags: "-m32"
 - 
 -           - arch: x86-64
 -             archdeps: ""
 -             archconfigflags: ''
 - 
 -         exclude:
 -           # These are not supported on 32bit
 -           - arch: x86-32
 -             sanitizer: leak
 -           - arch: x86-32
 -             sanitizer: memory
 -           - arch: x86-32
 -             sanitizer: thread
 -           # 32-bit macOS is not supported
 -           - os: macos-latest
 -             arch: x86-32
 -           # These are not supported on macos
 -           - os: macos-latest
 -             sanitizer: leak
 -           - os: macos-latest
 -             sanitizer: memory
 -           - os: macos-latest
 -             sanitizer: valgrind
 - 
 -     steps:
 -     - uses: actions/checkout@v2
 -     - name: enable 32bit architecture
 -       run: sudo dpkg --add-architecture i386
 -       if: matrix.arch == 'x86-32'
 -     - name: dependencies-apt
 -       if: matrix.os == 'ubuntu-latest'
 -       run: sudo apt-get update && sudo apt-get install libpcaudio-dev libsonic-dev ronn kramdown ${{ matrix.deps }} ${{ matrix.archdeps }}
 -     - name: dependencies-brew
 -       if: matrix.os == 'macos-latest'
 -       run: brew install libtool automake ronn OJFord/homebrew-formulae/kramdown ${{ matrix.archdeps }}
 -     - name: autoconf
 -       run: ./autogen.sh ; chmod -x INSTALL m4/*.m4
 -     - name: configure
 -       run: ${{ matrix.configenv }}
 -            CFLAGS="${{ matrix.configflags }} ${{ matrix.archconfigflags }}"
 -            CXXFLAGS="${{ matrix.configflags }} ${{ matrix.archconfigflags }}"
 -            ./configure ${{ matrix.config }}
 -     - name: Store the config
 -       if: ${{ failure() }}
 -       uses: actions/upload-artifact@v2
 -       with:
 -         name: config-${{ matrix.arch }}-${{ matrix.sanitizer }}.log
 -         path: config.log
 -     - name: make
 -       run: ${{ matrix.build_env }} make
 -     - name: make check
 -       run: ${{ matrix.check_env }} make check
 - 
 -   reprotest:
 - 
 -     runs-on: ubuntu-latest
 -     name: Build with reprotest on ${{ matrix.arch }}
 -     strategy:
 -       fail-fast: false
 -       matrix:
 -         arch: [x86-64, x86-32]
 - 
 -         include:
 -           - arch: x86-32
 -             archdeps: "gcc-multilib g++-multilib libpcaudio-dev:i386 libsonic-dev:i386 libc6-dbg:i386"
 -             archconfigflags: "-m32"
 - 
 -           - arch: x86-64
 -             archdeps: ""
 -             archconfigflags: ''
 - 
 -     steps:
 -       - uses: actions/checkout@v2
 -       - name: enable 32bit architecture
 -         run: sudo dpkg --add-architecture i386
 -         if: matrix.arch == 'x86-32'
 -       - name: dependencies
 -         run: sudo apt-get update && sudo apt-get install libpcaudio-dev libsonic-dev ronn kramdown reprotest ${{ matrix.archdeps }}
 -       - name: autoconf
 -         run: ./autogen.sh ; chmod -x INSTALL m4/*.m4
 -       - name: run
 -         run: reprotest 'CFLAGS="${{ matrix.archconfigflags }}" CXXFLAGS="${{ matrix.archconfigflags }}" ./configure --without-gradle && make clean && make && make check && touch success' success
 - 
 -   distcheck:
 - 
 -     runs-on: ubuntu-latest
 -     name: Run distcheck
 -     steps:
 -       - uses: actions/checkout@v2
 -       - name: dependencies
 -         run: sudo apt-get update && sudo apt-get install libpcaudio-dev libsonic-dev ronn kramdown
 -       - name: autoconf
 -         run: ./autogen.sh ; chmod -x INSTALL m4/*.m4
 -       - name: configure
 -         run: ./configure
 -       - name: make
 -         run: make
 -       - name: make check
 -         run: make check
 -       - name: make dist
 -         run: make dist
 -       - name: unpack
 -         run: mkdir unpack && tar -C unpack -xf *.tar.gz
 -       - name: re-configure
 -         run: cd unpack/espeak-ng-* && ./configure
 -       - name: re-make
 -         run: cd unpack/espeak-ng-* && make
 -       - name: re-make check
 -         run: cd unpack/espeak-ng-* && make check
 
 
  |