Add workflow that runs tests with valgrind on linux
To hopefully detect when we introduce new memory leaks. :-)
diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml
new file mode 100644
index 0000000..d4ef744
--- /dev/null
+++ b/.github/workflows/valgrind.yml
@@ -0,0 +1,42 @@
+name: valgrind
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+
+jobs:
+ linux:
+ runs-on: ubuntu-22.04
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v3
+ with:
+ submodules: true
+ - name: Install packages
+ run: |
+ sudo apt-get update
+ sudo apt-get upgrade
+ sudo apt-get install -y automake autoconf libtool valgrind
+ - name: Build
+ run: |
+ autoreconf -i
+ ./configure \
+ --disable-maintainer-mode \
+ --disable-docs \
+ --with-oniguruma=builtin
+ make -j"$(nproc)"
+ file ./jq
+ - name: Test
+ run: |
+ make check
+ git diff --exit-code
+ - name: Upload Test Logs
+ if: ${{ failure() }}
+ uses: actions/upload-artifact@v3
+ with:
+ name: test-logs-valgrind-linux
+ retention-days: 7
+ path: |
+ test-suite.log
+ tests/*.log