diff options
Diffstat (limited to '.github/workflows/linux.yml')
-rw-r--r-- | .github/workflows/linux.yml | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000..e624171 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,60 @@ +name: Linux + +on: + push: + branches: [ "*" ] + tags: [ "*" ] + pull_request: + branches: [ "trunk" ] + +env: + MARGS: "-j2" + +jobs: + + build: + strategy: + matrix: + include: + - name: Default + - name: Static + config: --enable-static + - name: Maintainer-mode + config: --enable-maintainer-mode + - name: Pool-debug + config: --enable-pool-debug + - name: Pool-debug, maintainer-mode + config: --enable-pool-debug --enable-maintainer-mode + - name: Maintainer-mode, no IPv6 + config: --enable-maintainer-mode --disable-ipv6 + - name: Maintainer-mode, -Werror + notest-cflags: -Werror + config: --enable-maintainer-mode + - name: ASan + # w/o ODBC since DSO unload leaks memory and fails the tests + notest-cflags: -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer -Werror -O2 + config: --with-odbc=no + - name: ASan, pool-debug + # w/o ODBC since DSO unload leaks memory and fails the tests + notest-cflags: -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer -Werror -O2 + config: --enable-pool-debug --with-odbc=no + - name: UBsan + notest-cflags: -fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer -Werror -O2 + fail-fast: false + + runs-on: ubuntu-latest + env: + NOTEST_CFLAGS: ${{ matrix.notest-cflags }} + name: ${{ matrix.name }} + steps: + - name: Install prerequisites + run: sudo apt-get install libtool libtool-bin + - uses: actions/checkout@v3 + - name: buildconf + run: ./buildconf + - name: configure + run: ./configure ${{ matrix.config }} + - name: make + run: make $MARGS + - name: make check + run: make check |