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