summaryrefslogtreecommitdiffstats
path: root/.github/workflows/linux.yml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/workflows/linux.yml60
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