]> wimlib.net Git - wimlib/blobdiff - .github/workflows/ci.yml
make-windows-release: support MSYS2 clang environments
[wimlib] / .github / workflows / ci.yml
index 95d88aaccad6efa0f8dacc9b0d95bf7865516a2e..e77d7d56f64ac44cc3a64cdfcaf23f29170f8cd7 100644 (file)
@@ -127,8 +127,10 @@ jobs:
     strategy:
       matrix:
         include:
-        - { sys: mingw32, env: i686 }
-        - { sys: mingw64, env: x86_64 }
+        - { msystem: mingw32, cc_pkg: mingw-w64-i686-gcc }
+        - { msystem: mingw64, cc_pkg: mingw-w64-x86_64-gcc }
+        - { msystem: clang32, cc_pkg: mingw-w64-clang-i686-clang }
+        - { msystem: clang64, cc_pkg: mingw-w64-clang-x86_64-clang }
     defaults:
       run:
         shell: msys2 {0}
@@ -136,15 +138,48 @@ jobs:
     - uses: actions/checkout@v3
     - uses: msys2/setup-msys2@v2
       with:
-        msystem: ${{matrix.sys}}
+        msystem: ${{matrix.msystem}}
         update: true
         install: >
           autoconf
           automake
+          git
           libtool
-          pkg-config
           make
-          mingw-w64-${{matrix.env}}-cc
+          ${{matrix.cc_pkg}}
+          pkgconf
+    - run: CFLAGS="$DEF_CFLAGS" ./tools/make-windows-release
+
+  fuzz-with-libFuzzer:
+    name: Fuzz with libFuzzer (${{matrix.target}} ${{matrix.sanitizer}})
+    strategy:
+      matrix:
+        include:
+        - target: wim
+          sanitizer:
+        - target: wim
+          sanitizer: --asan --ubsan
+        - target: xml
+          sanitizer:
+        - target: xml
+          sanitizer: --asan --ubsan
+        - target: compress
+          sanitizer:
+        - target: compress
+          sanitizer: --asan --ubsan
+        - target: decompress
+          sanitizer:
+        - target: decompress
+          sanitizer: --asan --ubsan
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v3
+    - name: Install dependencies
+      run: |
+        sudo apt-get update
+        sudo apt-get install -y clang $DEPENDENCIES
     - run: ./bootstrap
-    - run: ./configure CFLAGS="$DEF_CFLAGS" --without-fuse --without-ntfs-3g
-    - run: make -j8
+    - name: Fuzz
+      run: |
+        tools/libFuzzer/fuzz.sh --time=120 ${{matrix.sanitizer}} \
+            ${{matrix.target}}