Merge pull request #469 from jschlyter/container #704
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build-test | |
| on: [ push, pull_request ] | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| include: | |
| - os: ubuntu-24.04 | |
| cc: gcc | |
| cflags: -g2 -O0 -fsanitize=address,undefined,leak -fno-sanitize-recover=all | |
| packages: autoconf automake libtool make libevent-dev libssl-dev flex bison libfstrm-dev protobuf-c-compiler libprotobuf-c-dev | |
| - os: ubuntu-24.04 | |
| cc: clang | |
| cflags: -g2 -O0 -fsanitize=address,undefined,leak -fno-sanitize-recover=all | |
| packages: autoconf automake libtool make libevent-dev libssl-dev flex bison libfstrm-dev protobuf-c-compiler libprotobuf-c-dev | |
| - os: macos-15 | |
| cflags: -g2 -O0 -fsanitize=address,undefined -fno-sanitize-recover=all | |
| packages: autoconf automake libtool flex bison fstrm protobuf-c | |
| # The libevent and openssl packages are already installed. | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: 'Workaround for actions/runner-images#9491' | |
| if: runner.os == 'Linux' | |
| run: sudo sysctl vm.mmap_rnd_bits=28 | |
| - name: 'Install Linux packages' | |
| if: runner.os == 'Linux' | |
| shell: bash | |
| run: | | |
| sudo apt-get install ${{matrix.packages}} | |
| - name: 'Install macOS packages' | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| brew install ${{matrix.packages}} | |
| - name: 'Build' | |
| id: build | |
| shell: bash | |
| env: | |
| CC: ${{matrix.cc}} | |
| CFLAGS: ${{matrix.cflags}} | |
| run: | | |
| set -e -x | |
| autoconf && autoheader | |
| (cd simdzone && autoconf && autoheader) | |
| libtoolize -c -i || glibtoolize -c -i | |
| if test "${{runner.os}}" = 'macOS'; then | |
| ./configure --enable-checking --disable-flto --with-ssl=/opt/homebrew/opt/openssl --with-libevent=/opt/homebrew/opt/libevent --with-libfstrm=/opt/homebrew/opt/fstrm --with-protobuf-c=/opt/homebrew/opt/protobuf-c | |
| else | |
| ./configure --enable-checking --disable-flto --with-ssl=yes --with-libevent=yes | |
| fi | |
| make -j 2 | |
| - name: 'Run tests' | |
| id: test | |
| shell: bash | |
| run: | | |
| set -e -x | |
| make cutest | |
| ./cutest | |
| (cd tpkg/clang-analysis.tdir && bash clang-analysis.test) | |
| (cd tpkg && ./mini_tdir.sh -a ../.. exe checkconf.tdir) |