Enable CIFuzz for automatically fuzzing pull-request code.

Uses undefined behavior sanitizer, this covers most of the interesting stuff
and memory errors are covered by the assert()s in the fuzz test stub itself.
diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml
new file mode 100644
index 0000000..fd78006
--- /dev/null
+++ b/.github/workflows/cifuzz.yml
@@ -0,0 +1,32 @@
+name: CIFuzz
+on: [pull_request]
+  pull_request:
+    branches:
+      - master
+    paths:
+      - '**.c'
+jobs:
+  Fuzzing:
+    runs-on: ubuntu-latest
+    steps:
+    - name: Build Fuzzers
+      id: build
+      uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
+      with:
+        oss-fuzz-project-name: 'nanopb'
+        dry-run: false
+        sanitizer: undefined
+    - name: Run Fuzzers
+      uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
+      with:
+        oss-fuzz-project-name: 'nanopb'
+        fuzz-seconds: 600
+        dry-run: false
+        sanitizer: undefined
+    - name: Upload Crash
+      uses: actions/upload-artifact@v1
+      if: failure() && steps.build.outcome == 'success'
+      with:
+        name: artifacts
+        path: ./out/artifacts
+