2 # Faster tests: mostly build tests, along with some other
6 group: fast-${{ github.ref }}
7 cancel-in-progress: true
11 branches: [ dev, release, actionsTest ]
17 runs-on: ubuntu-latest
19 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
20 - name: linux kernel, library + build + test
21 run: make -C contrib/linux-kernel test CFLAGS="-Werror -Wunused-const-variable -Wunused-but-set-variable"
24 runs-on: ubuntu-latest
26 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
27 - name: make benchmarking
28 run: make benchmarking
30 check-32bit: # designed to catch https://github.com/facebook/zstd/issues/2428
31 runs-on: ubuntu-latest
33 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
34 - name: make check on 32-bit
37 APT_PACKAGES="gcc-multilib" make apt-install
38 CFLAGS="-m32 -O1 -fstack-protector" make check V=1
41 runs-on: ubuntu-20.04 # ubuntu-latest == ubuntu-22.04 have issues currently with x32
43 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
44 - name: make check on x32 ABI # https://en.wikipedia.org/wiki/X32_ABI
46 CHECK_CONSTRAINED_MEM: true
49 APT_PACKAGES="gcc-multilib" make apt-install
50 CFLAGS="-mx32 -O1 -fstack-protector" make check V=1
53 runs-on: ubuntu-latest
55 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
56 - name: ensure zstd can be build with c89/c90 compilers (+ long long support + variadic macros)
61 runs-on: ubuntu-latest
63 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
64 - name: build zstd bin against a dynamic lib (debuglevel for more dependencies)
66 make -C lib lib-mt-release
67 DEBUGLEVEL=2 make -C programs zstd-dll
70 runs-on: ubuntu-latest
72 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
73 - name: gcc-7 + libzstdmt compilation
74 # See https://askubuntu.com/a/1428822
76 echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
77 sudo apt-get -qqq update
79 CC=gcc-7 CFLAGS=-Werror make -j all
81 LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
83 # candidate test (for discussion) : underlink test
84 # LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked
86 cmake-build-and-test-check:
87 runs-on: ubuntu-latest
89 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
90 - name: cmake build and test
92 FUZZERTEST=-T1mn ZSTREAM_TESTTIME=-T1mn make cmakebuild V=1
94 cpp-gnu90-c99-compatibility:
95 runs-on: ubuntu-latest
97 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
98 - name: C++, gnu90 and c99 compatibility
106 make travis-install # just ensures `make install` works
108 mingw-cross-compilation:
109 runs-on: ubuntu-latest
111 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
112 - name: mingw cross-compilation
114 # sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix; (doesn't work)
115 sudo apt-get -qqq update
116 sudo apt-get install gcc-mingw-w64
117 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ CFLAGS="-Werror -O1" make zstd
120 runs-on: ubuntu-latest
122 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
123 - name: ARM Build Test
125 sudo apt-get -qqq update
130 runs-on: ubuntu-latest
132 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
133 - name: Bourne shell compatibility (shellcheck)
135 wget https://github.com/koalaman/shellcheck/releases/download/v0.7.1/shellcheck-v0.7.1.linux.x86_64.tar.xz
136 tar -xf shellcheck-v0.7.1.linux.x86_64.tar.xz
137 shellcheck-v0.7.1/shellcheck --shell=sh --severity=warning --exclude=SC2010 tests/playTests.sh
140 runs-on: ubuntu-latest
142 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
143 - name: zlib wrapper test
145 sudo apt-get -qqq update
147 make -C zlibWrapper test
148 make -C zlibWrapper test-valgrind
151 runs-on: ubuntu-latest
153 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
154 - name: LZ4, thread pool, and libs build testslib wrapper test
157 make -C tests test-lz4
158 make check < /dev/null | tee # mess with lz4 console detection
160 make -C tests test-pool
162 bash tests/libzstd_builds.sh
164 gcc-make-tests-32bit:
165 runs-on: ubuntu-latest
167 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
168 - name: Make all, 32bit mode
170 sudo apt-get -qqq update
172 CFLAGS="-Werror -m32" make -j all32
175 runs-on: ubuntu-latest
177 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
179 # See https://askubuntu.com/a/1428822
181 echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
182 sudo apt-get -qqq update
184 CC=gcc-8 CFLAGS="-Werror" make -j all
186 make-external-compressors:
190 - name: "no external compressors"
191 flags: "HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0"
193 flags: "HAVE_ZLIB=1 HAVE_LZ4=0 HAVE_LZMA=0"
195 flags: "HAVE_ZLIB=0 HAVE_LZ4=1 HAVE_LZMA=0"
197 flags: "HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=1"
198 runs-on: ubuntu-latest
200 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
201 - name: Build with ${{matrix.name}}
202 run: ${{matrix.flags}} make zstd
205 implicit-fall-through:
206 runs-on: ubuntu-latest
208 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
209 - name: -Wimplicit-fallthrough build
212 CC=gcc MOREFLAGS="-Werror -Wimplicit-fallthrough=2 -O0" make -C lib -j libzstd.a ZSTD_LEGACY_SUPPORT=0
214 CC=clang MOREFLAGS="-Werror -Wimplicit-fallthrough -O0" make -C lib -j libzstd.a ZSTD_LEGACY_SUPPORT=0
217 runs-on: ubuntu-latest
219 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
220 - name: Install packages
223 sudo apt-get -y install build-essential python3-pip ninja-build liblz4-dev
224 pip install --pre meson
225 - name: Build with Meson
228 --buildtype=debugoptimized \
230 -Dauto_features=enabled \
231 -Dbin_programs=true \
234 -Ddefault_library=both \
237 meson test -C builddir/ --print-errorlogs
238 meson install -C builddir --destdir staging/
241 runs-on: windows-latest
243 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
244 - name: Install packages
245 run: pip install --pre meson
246 - name: Configure with Meson
248 meson setup --vsenv build/meson/ builddir -Dbin_tests=true -Dbin_programs=true -Dbin_contrib=true
249 - name: Build with Meson
251 meson compile -C builddir/
252 - name: Test with Meson
254 meson test -C builddir/ --print-errorlogs
255 - name: Install with Meson
257 meson install -C builddir --destdir staging/
263 - generator: "Visual Studio 17 2022"
265 - generator: "Visual Studio 17 2022"
267 - generator: "MinGW Makefiles"
268 - generator: "Visual Studio 17 2022"
270 runs-on: windows-2022
272 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
273 - name: Add MSBuild to PATH
274 uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # tag=v2.0.0
276 working-directory: ${{env.GITHUB_WORKSPACE}}
281 cmake.exe -G "${{matrix.generator}}" ${{matrix.flags}} -DCMAKE_BUILD_TYPE=Debug -DZSTD_BUILD_TESTS:BOOL=ON -DZSTD_ZSTREAM_FLAGS=-T30s -DZSTD_FUZZER_FLAGS=-T30s -DZSTD_FULLBENCH_FLAGS=-i0 ..
283 ctest.exe -V -C Debug
285 msbuild-visual-studio:
287 fail-fast: false # 'false' means Don't stop matrix workflows even if some matrix failed.
290 { name: "VS 2022 x64 Debug", platform: x64, configuration: Debug, toolset: v143, runner: "windows-2022", arch: "" },
291 { name: "VS 2022 Win32 Debug", platform: Win32, configuration: Debug, toolset: v143, runner: "windows-2022", arch: "" },
292 { name: "VS 2022 x64 Release", platform: x64, configuration: Release, toolset: v143, runner: "windows-2022", arch: ""},
293 { name: "VS 2022 Win32 Release", platform: Win32, configuration: Release, toolset: v143, runner: "windows-2022", arch: ""},
294 { name: "VS 2019 x64 Release", platform: Win32, configuration: Release, toolset: v142, runner: "windows-2019", arch: ""},
295 { name: "VS 2019 Win32 Release", platform: x64, configuration: Release, toolset: v142, runner: "windows-2019", arch: ""},
296 { name: "VS 2022 x64 Release AVX2", platform: x64, configuration: Release, toolset: v143, runner: "windows-2022", arch: "AdvancedVectorExtensions2" },
298 runs-on: ${{matrix.runner}}
300 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
301 - name: Add MSBuild to PATH
302 uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # tag=v2.0.0
303 - name: Build ${{matrix.name}}
304 working-directory: ${{env.GITHUB_WORKSPACE}}
305 # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
306 if: ${{ matrix.arch == '' }}
308 msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=${{matrix.toolset}}
309 /t:Clean,Build /p:Platform=${{matrix.platform}} /p:Configuration=${{matrix.configuration}} /warnaserror
310 - name: Build ${{matrix.name}}
311 working-directory: ${{env.GITHUB_WORKSPACE}}
312 # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
313 if: ${{ matrix.arch != '' }}
315 msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=${{matrix.toolset}}
316 /t:Clean,Build /p:Platform=${{matrix.platform}} /p:Configuration=${{matrix.configuration}} /warnaserror
317 /p:InstructionSet=${{matrix.arch}}
319 # This tests that we don't accidentally grow the size too much.
320 # If the size grows intentionally, you can raise these numbers.
321 # But we do need to think about binary size, since it is a concern.
323 runs-on: ubuntu-latest
325 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
326 - name: libzstd size test
328 make clean && make -j -C lib libzstd && ./tests/check_size.py lib/libzstd.so 1100000
329 make clean && make -j -C lib libzstd ZSTD_LIB_COMPRESSION=0 ZSTD_LIB_DICTBUILDER=0 && ./tests/check_size.py lib/libzstd.so 400000
330 make clean && make -j -C lib libzstd ZSTD_LIB_MINIFY=1 && ./tests/check_size.py lib/libzstd.so 300000
331 make clean && make -j -C lib libzstd ZSTD_LIB_MINIFY=1 ZSTD_LIB_COMPRESSION=0 ZSTD_LIB_DICTBUILDER=0 && ./tests/check_size.py lib/libzstd.so 80000
333 minimal-decompressor-macros:
334 runs-on: ubuntu-latest
336 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
337 - name: minimal decompressor macros
339 make clean && make -j all ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
340 make clean && make check ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
341 make clean && make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
342 make clean && make check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
343 make clean && make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
344 make clean && make check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
345 make clean && make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
346 make clean && make check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
347 make clean && make check ZSTD_LIB_EXCLUDE_COMPRESSORS_DFAST_AND_UP=1 MOREFLAGS="-Werror"
348 make clean && make check ZSTD_LIB_EXCLUDE_COMPRESSORS_GREEDY_AND_UP=1 MOREFLAGS="-Werror"
351 runs-on: ubuntu-latest
353 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
354 - name: dynamic bmi2 tests
356 make clean && make -j check MOREFLAGS="-O0 -Werror -mbmi2"
357 make clean && make -j check MOREFLAGS="-O0 -Werror -DDYNAMIC_BMI2=1"
358 make clean && make -j check MOREFLAGS="-O0 -Werror -DDYNAMIC_BMI2=1 -mbmi2"
359 make clean && make -j check MOREFLAGS="-O0 -Werror -DDYNAMIC_BMI2=0"
360 make clean && make -j check MOREFLAGS="-O0 -Werror -DDYNAMIC_BMI2=0 -mbmi2"
363 runs-on: ubuntu-latest
365 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
366 - name: make all variants & validate
368 make -j -C programs allVariants MOREFLAGS=-O0
369 ./tests/test-variants.sh
372 name: QEMU ${{ matrix.name }}
373 runs-on: ubuntu-20.04
375 fail-fast: false # 'false' means Don't stop matrix workflows even if some matrix failed.
378 { name: ARM, xcc_pkg: gcc-arm-linux-gnueabi, xcc: arm-linux-gnueabi-gcc, xemu_pkg: qemu-system-arm, xemu: qemu-arm-static },
379 { name: ARM64, xcc_pkg: gcc-aarch64-linux-gnu, xcc: aarch64-linux-gnu-gcc, xemu_pkg: qemu-system-arm, xemu: qemu-aarch64-static },
380 { name: PPC, xcc_pkg: gcc-powerpc-linux-gnu, xcc: powerpc-linux-gnu-gcc, xemu_pkg: qemu-system-ppc, xemu: qemu-ppc-static },
381 { name: PPC64LE, xcc_pkg: gcc-powerpc64le-linux-gnu, xcc: powerpc64le-linux-gnu-gcc, xemu_pkg: qemu-system-ppc, xemu: qemu-ppc64le-static },
382 { name: S390X, xcc_pkg: gcc-s390x-linux-gnu, xcc: s390x-linux-gnu-gcc, xemu_pkg: qemu-system-s390x, xemu: qemu-s390x-static },
383 { name: MIPS, xcc_pkg: gcc-mips-linux-gnu, xcc: mips-linux-gnu-gcc, xemu_pkg: qemu-system-mips, xemu: qemu-mips-static },
384 { name: RISC-V, xcc_pkg: gcc-riscv64-linux-gnu, xcc: riscv64-linux-gnu-gcc, xemu_pkg: qemu-system-riscv64,xemu: qemu-riscv64-static },
385 { name: M68K, xcc_pkg: gcc-m68k-linux-gnu, xcc: m68k-linux-gnu-gcc, xemu_pkg: qemu-system-m68k, xemu: qemu-m68k-static },
386 { name: SPARC, xcc_pkg: gcc-sparc64-linux-gnu, xcc: sparc64-linux-gnu-gcc, xemu_pkg: qemu-system-sparc, xemu: qemu-sparc64-static },
388 env: # Set environment variables
389 XCC: ${{ matrix.xcc }}
390 XEMU: ${{ matrix.xemu }}
392 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
393 - name: apt update & install
396 sudo apt-get install gcc-multilib g++-multilib qemu-utils qemu-user-static
397 sudo apt-get install ${{ matrix.xcc_pkg }} ${{ matrix.xemu_pkg }}
398 - name: Environment info
401 echo && $XCC --version
402 echo && $XCC -v # Show built-in specs
404 echo && $XEMU --version
406 if: ${{ matrix.name == 'ARM' }}
408 LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
410 if: ${{ matrix.name == 'ARM64' }}
412 LDFLAGS="-static -z force-bti" MOREFLAGS="-mbranch-protection=standard" CC=$XCC QEMU_SYS=$XEMU make clean check
413 LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
415 if: ${{ matrix.name == 'PPC' }}
417 LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
419 if: ${{ matrix.name == 'PPC64LE' }}
421 LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
423 if: ${{ matrix.name == 'S390X' }}
425 LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
427 if: ${{ matrix.name == 'MIPS' }}
429 LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
431 if: ${{ matrix.name == 'RISC-V' }}
433 LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
435 if: ${{ matrix.name == 'M68K' }}
437 LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
439 if: ${{ matrix.name == 'SPARC' }}
441 LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
444 runs-on: windows-latest
446 fail-fast: false # 'false' means Don't stop matrix workflows even if some matrix failed.
449 { compiler: gcc, msystem: MINGW32, cflags: "-Werror"},
450 { compiler: gcc, msystem: MINGW64, cflags: "-Werror"},
451 { compiler: clang, msystem: MINGW64, cflags: "--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion -Wno-unused-command-line-argument"},
457 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
458 - uses: msys2/setup-msys2@cc11e9188b693c2b100158c3322424c4cc1dadea # tag=v2.22.0
460 msystem: ${{ matrix.msystem }}
461 install: make diffutils
463 # Based on https://ariya.io/2020/07/on-github-actions-with-msys2
464 - name: install mingw gcc i686
465 if: ${{ (matrix.msystem == 'MINGW32') && (matrix.compiler == 'gcc') }}
466 run: pacman --noconfirm -S mingw-w64-i686-gcc
467 - name: install mingw gcc x86_64
468 if: ${{ (matrix.msystem == 'MINGW64') && (matrix.compiler == 'gcc') }}
469 run: pacman --noconfirm -S mingw-w64-x86_64-gcc
470 - name: install mingw clang i686
471 if: ${{ (matrix.msystem == 'MINGW32') && (matrix.compiler == 'clang') }}
472 run: pacman --noconfirm -S mingw-w64-i686-clang
473 - name: install mingw clang x86_64
474 if: ${{ (matrix.msystem == 'MINGW64') && (matrix.compiler == 'clang') }}
475 run: pacman --noconfirm -S mingw-w64-x86_64-clang
476 - name: run mingw tests
479 export CC=${{ matrix.compiler }}
481 CFLAGS="${{ matrix.cflags }}" make -j allzstd
482 echo "Testing $CC ${{ matrix.msystem }}"
486 visual-runtime-tests:
487 runs-on: windows-latest
490 platform: [x64, Win32]
491 configuration: [Release]
493 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
494 - name: Add MSBuild to PATH
495 uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # tag=v2.0.0
496 - name: Build and run tests
497 working-directory: ${{env.GITHUB_WORKSPACE}}
500 DATAGEN_BIN: ./datagen.exe
501 # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
503 msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v142 /t:Clean,Build /p:Platform=${{matrix.platform}} /p:Configuration=${{matrix.configuration}}
504 COPY build\VS2010\bin\${{matrix.platform}}_${{matrix.configuration}}\*.exe tests\
509 # Following instructions at: https://github.com/marketplace/actions/install-cygwin-action
511 runs-on: windows-latest
513 - run: git config --global core.autocrlf input
514 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
515 - uses: cygwin/cygwin-install-action@006ad0b0946ca6d0a3ea2d4437677fa767392401 # tag=master
523 mingw64-x86_64-gcc-g++,
527 shell: C:\cygwin\bin\bash.exe --noprofile --norc -eo pipefail '{0}'
529 export PATH=/usr/bin:$(cygpath ${SYSTEMROOT})/system32 &&
530 export CFLAGS="-Werror -O1" &&
533 make -C tests fuzzer &&
534 ./tests/fuzzer.exe -v -T1m
537 runs-on: ubuntu-latest
539 image: debian:testing
541 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
542 - name: Install dependencies
545 apt -y install --no-install-recommends gcc libc6-dev make pkg-config
546 - name: Build and install
547 run: make -C lib install
548 - name: Test pkg-config
550 cc -Wall -Wextra -Wpedantic -Werror -o simple examples/simple_compression.c $(pkg-config --cflags --libs libzstd)
553 versions-compatibility:
554 runs-on: ubuntu-latest
556 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
557 - name: Versions Compatibility Test
559 make -C tests versionsTest
562 runs-on: ubuntu-latest
564 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
565 - name: make clangbuild
570 runs-on: ubuntu-latest
572 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
573 - name: Build PGO Zstd with Clang
576 LLVM_PROFDATA: llvm-profdata-14
578 make -C programs zstd-pgo
582 runs-on: ubuntu-latest
584 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
585 - name: Build PGO Zstd with GCC
589 make -C programs zstd-pgo
592 intel-cet-compatibility:
593 runs-on: ubuntu-latest
595 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
600 - name: Get Intel SDE
602 curl -LO https://downloadmirror.intel.com/813591/sde-external-9.33.0-2024-01-07-lin.tar.xz
603 tar xJvf sde-external-9.33.0-2024-01-07-lin.tar.xz
604 - name: Configure Permissions
606 echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
607 - name: Run Under SDE
609 sde-external-9.33.0-2024-01-07-lin/sde -cet -cet-raise 0 -cet-endbr-exe -cet-stderr -cet-abort -- ./zstd -b3
612 # Failing tests, for reference
614 # icc tests are currently failing on Github Actions, likely to issues during installation stage
618 # runs-on: ubuntu-latest
620 # - name: install icc
622 # export DEBIAN_FRONTEND=noninteractive
623 # sudo apt-get -qqq update
624 # sudo apt-get install -y wget build-essential pkg-config cmake ca-certificates gnupg
625 # sudo wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
626 # sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
627 # sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
628 # sudo apt-get update
629 # sudo apt-get install -y intel-basekit intel-hpckit
630 # - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
633 # make CC=/opt/intel/oneapi/compiler/latest/linux/bin/intel64/icc check