It's a bit silly, because if we can't trust GitHub, what are we doing here? But OSSF complains about it, so let's fix it.
524 lines
20 KiB
YAML
524 lines
20 KiB
YAML
name: dev-short-tests
|
|
# Faster tests: mostly build tests, along with some other
|
|
# misc tests
|
|
|
|
concurrency:
|
|
group: fast-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [ dev, release, actionsTest ]
|
|
|
|
jobs:
|
|
linux-kernel:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: linux kernel, library + build + test
|
|
run: make -C contrib/linux-kernel test CFLAGS="-Werror -Wunused-const-variable -Wunused-but-set-variable"
|
|
|
|
benchmarking:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: make benchmarking
|
|
run: make benchmarking
|
|
|
|
check-32bit: # designed to catch https://github.com/facebook/zstd/issues/2428
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: make check on 32-bit
|
|
run: |
|
|
sudo apt update
|
|
APT_PACKAGES="gcc-multilib" make apt-install
|
|
CFLAGS="-m32 -O1 -fstack-protector" make check V=1
|
|
|
|
check-x32:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: make check on x32 ABI # https://en.wikipedia.org/wiki/X32_ABI
|
|
env:
|
|
CHECK_CONSTRAINED_MEM: true
|
|
run: |
|
|
sudo apt update
|
|
APT_PACKAGES="gcc-multilib" make apt-install
|
|
CFLAGS="-mx32 -O1 -fstack-protector" make check V=1
|
|
|
|
gcc-7-libzstd:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: gcc-7 + libzstdmt compilation
|
|
# See https://askubuntu.com/a/1428822
|
|
run: |
|
|
echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
|
|
sudo apt-get -qqq update
|
|
make gcc7install
|
|
CC=gcc-7 CFLAGS=-Werror make -j all
|
|
make clean
|
|
LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
|
|
|
|
# candidate test (to check) : underlink test
|
|
# LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked
|
|
|
|
cmake-build-and-test-check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: cmake build and test check
|
|
run: |
|
|
FUZZERTEST=-T1mn ZSTREAM_TESTTIME=-T1mn make cmakebuild
|
|
cp -r ./ "../zstd source"
|
|
cd "../zstd source"
|
|
FUZZERTEST=-T1mn ZSTREAM_TESTTIME=-T1mn make cmakebuild
|
|
|
|
cpp-gnu90-c99-compatibility:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: C++, gnu90 and c99 compatibility
|
|
run: |
|
|
make cxxtest
|
|
make clean
|
|
make gnu90build
|
|
make clean
|
|
make c99build
|
|
make clean
|
|
make travis-install # just ensures `make install` works
|
|
|
|
mingw-cross-compilation:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: mingw cross-compilation
|
|
run: |
|
|
# sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix; (doesn't work)
|
|
sudo apt-get -qqq update
|
|
sudo apt-get install gcc-mingw-w64
|
|
CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ CFLAGS="-Werror -O1" make zstd
|
|
|
|
armbuild:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: ARM Build Test
|
|
run: |
|
|
sudo apt-get -qqq update
|
|
make arminstall
|
|
make armbuild
|
|
|
|
bourne-shell:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Bourne shell compatibility (shellcheck)
|
|
run: |
|
|
wget https://github.com/koalaman/shellcheck/releases/download/v0.7.1/shellcheck-v0.7.1.linux.x86_64.tar.xz
|
|
tar -xf shellcheck-v0.7.1.linux.x86_64.tar.xz
|
|
shellcheck-v0.7.1/shellcheck --shell=sh --severity=warning --exclude=SC2010 tests/playTests.sh
|
|
|
|
zlib-wrapper:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: zlib wrapper test
|
|
run: |
|
|
sudo apt-get -qqq update
|
|
make valgrindinstall
|
|
make -C zlibWrapper test
|
|
make -C zlibWrapper test-valgrind
|
|
|
|
lz4-threadpool-libs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: LZ4, thread pool, and libs build testslib wrapper test
|
|
run: |
|
|
make lz4install
|
|
make -C tests test-lz4
|
|
make check < /dev/null | tee # mess with lz4 console detection
|
|
make clean
|
|
make -C tests test-pool
|
|
make clean
|
|
bash tests/libzstd_builds.sh
|
|
|
|
gcc-make-tests-32bit:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Make all, 32bit mode
|
|
run: |
|
|
sudo apt-get -qqq update
|
|
make libc6install
|
|
CFLAGS="-Werror -m32" make -j all32
|
|
|
|
gcc-8-make:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: gcc-8 build
|
|
# See https://askubuntu.com/a/1428822
|
|
run: |
|
|
echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
|
|
sudo apt-get -qqq update
|
|
make gcc8install
|
|
CC=gcc-8 CFLAGS="-Werror" make -j all
|
|
|
|
implicit-fall-through:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: -Wimplicit-fallthrough build
|
|
run: |
|
|
make clean
|
|
CC=gcc MOREFLAGS="-Werror -Wimplicit-fallthrough=2 -O0" make -C lib -j libzstd.a ZSTD_LEGACY_SUPPORT=0
|
|
make clean
|
|
CC=clang MOREFLAGS="-Werror -Wimplicit-fallthrough -O0" make -C lib -j libzstd.a ZSTD_LEGACY_SUPPORT=0
|
|
|
|
meson-linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Install packages
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get -y install build-essential python3-pip ninja-build liblz4-dev
|
|
pip install --pre meson
|
|
- name: Build with Meson
|
|
run: |
|
|
meson setup \
|
|
--buildtype=debugoptimized \
|
|
-Db_lundef=false \
|
|
-Dauto_features=enabled \
|
|
-Dbin_programs=true \
|
|
-Dbin_tests=true \
|
|
-Dbin_contrib=true \
|
|
-Ddefault_library=both \
|
|
build/meson builddir
|
|
ninja -C builddir/
|
|
meson test -C builddir/ --print-errorlogs
|
|
meson install -C builddir --destdir staging/
|
|
|
|
meson-windows:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Install packages
|
|
run: pip install --pre meson
|
|
- name: Initialize the MSVC dev command prompt
|
|
uses: ilammy/msvc-dev-cmd@7315a94840631165970262a99c72cfb48a65d25d
|
|
- name: Configure with Meson
|
|
run: |
|
|
meson setup build/meson/ builddir -Dbin_tests=true -Dbin_programs=true -Dbin_contrib=true
|
|
- name: Build with Meson
|
|
run: |
|
|
ninja -C builddir/
|
|
- name: Test with Meson
|
|
run: |
|
|
meson test -C builddir/ --print-errorlogs
|
|
- name: Install with Meson
|
|
run: |
|
|
meson install -C builddir --destdir staging/
|
|
|
|
cmake-visual-2019:
|
|
runs-on: windows-2019
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- generator: "Visual Studio 16 2019"
|
|
flags: "-A x64"
|
|
- generator: "Visual Studio 16 2019"
|
|
flags: "-A Win32"
|
|
- generator: "MinGW Makefiles"
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Add MSBuild to PATH
|
|
uses: microsoft/setup-msbuild@v1.1.3
|
|
- name: Build
|
|
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
run: |
|
|
cd build\cmake
|
|
mkdir build
|
|
cd build
|
|
cmake.exe -G "${{matrix.generator}}" ${{matrix.flags}} ..
|
|
cmake.exe --build .
|
|
|
|
visual-2019:
|
|
runs-on: windows-2019
|
|
strategy:
|
|
matrix:
|
|
platform: [x64, Win32]
|
|
configuration: [Debug, Release]
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Add MSBuild to PATH
|
|
uses: microsoft/setup-msbuild@v1.1.3
|
|
- name: Build
|
|
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
|
|
run: >
|
|
msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v142
|
|
/t:Clean,Build /p:Platform=${{matrix.platform}} /p:Configuration=${{matrix.configuration}}
|
|
|
|
# TODO: fix as part of https://github.com/facebook/zstd/issues/3064
|
|
# visual-2015:
|
|
# # only GH actions windows-2016 contains VS 2015
|
|
# runs-on: windows-2016
|
|
# strategy:
|
|
# matrix:
|
|
# platform: [x64, Win32]
|
|
# configuration: [Debug, Release]
|
|
# steps:
|
|
# - uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
# - name: Add MSBuild to PATH
|
|
# uses: microsoft/setup-msbuild@v1.1.3
|
|
# - name: Build
|
|
# working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
# run: >
|
|
# msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140
|
|
# /t:Clean,Build /p:Platform=${{matrix.platform}} /p:Configuration=${{matrix.configuration}}
|
|
|
|
# This tests that we don't accidently grow the size too much.
|
|
# If the size grows intentionally, you can raise these numbers.
|
|
# But we do need to think about binary size, since it is a concern.
|
|
libzstd-size:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: libzstd size test
|
|
run: |
|
|
make clean && make -j -C lib libzstd && ./tests/check_size.py lib/libzstd.so 1100000
|
|
make clean && make -j -C lib libzstd ZSTD_LIB_COMPRESSION=0 ZSTD_LIB_DICTBUILDER=0 && ./tests/check_size.py lib/libzstd.so 400000
|
|
make clean && make -j -C lib libzstd ZSTD_LIB_MINIFY=1 && ./tests/check_size.py lib/libzstd.so 300000
|
|
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
|
|
|
|
minimal-decompressor-macros:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: minimal decompressor macros
|
|
run: |
|
|
make clean && make -j all ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
|
|
make clean && make check ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
|
|
make clean && make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
|
|
make clean && make check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
|
|
make clean && make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
|
|
make clean && make check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
|
|
make clean && make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
|
|
make clean && make check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
|
|
|
|
dynamic-bmi2:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: dynamic bmi2 tests
|
|
run: |
|
|
make clean && make -j check MOREFLAGS="-O0 -Werror -mbmi2"
|
|
make clean && make -j check MOREFLAGS="-O0 -Werror -DDYNAMIC_BMI2=1"
|
|
make clean && make -j check MOREFLAGS="-O0 -Werror -DDYNAMIC_BMI2=1 -mbmi2"
|
|
make clean && make -j check MOREFLAGS="-O0 -Werror -DDYNAMIC_BMI2=0"
|
|
make clean && make -j check MOREFLAGS="-O0 -Werror -DDYNAMIC_BMI2=0 -mbmi2"
|
|
|
|
test-variants:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: make all variants & validate
|
|
run: |
|
|
make -j -C programs allVariants MOREFLAGS=-O0
|
|
./tests/test-variants.sh
|
|
|
|
|
|
qemu-consistency:
|
|
name: QEMU ${{ matrix.name }}
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false # 'false' means Don't stop matrix workflows even if some matrix failed.
|
|
matrix:
|
|
include: [
|
|
{ name: ARM, xcc_pkg: gcc-arm-linux-gnueabi, xcc: arm-linux-gnueabi-gcc, xemu_pkg: qemu-system-arm, xemu: qemu-arm-static },
|
|
{ name: ARM64, xcc_pkg: gcc-aarch64-linux-gnu, xcc: aarch64-linux-gnu-gcc, xemu_pkg: qemu-system-arm, xemu: qemu-aarch64-static },
|
|
{ name: PPC, xcc_pkg: gcc-powerpc-linux-gnu, xcc: powerpc-linux-gnu-gcc, xemu_pkg: qemu-system-ppc, xemu: qemu-ppc-static },
|
|
{ name: PPC64LE, xcc_pkg: gcc-powerpc64le-linux-gnu, xcc: powerpc64le-linux-gnu-gcc, xemu_pkg: qemu-system-ppc, xemu: qemu-ppc64le-static },
|
|
{ name: S390X, xcc_pkg: gcc-s390x-linux-gnu, xcc: s390x-linux-gnu-gcc, xemu_pkg: qemu-system-s390x, xemu: qemu-s390x-static },
|
|
{ name: MIPS, xcc_pkg: gcc-mips-linux-gnu, xcc: mips-linux-gnu-gcc, xemu_pkg: qemu-system-mips, xemu: qemu-mips-static },
|
|
{ name: M68K, xcc_pkg: gcc-m68k-linux-gnu, xcc: m68k-linux-gnu-gcc, xemu_pkg: qemu-system-m68k, xemu: qemu-m68k-static },
|
|
]
|
|
env: # Set environment variables
|
|
XCC: ${{ matrix.xcc }}
|
|
XEMU: ${{ matrix.xemu }}
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: apt update & install
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install gcc-multilib g++-multilib qemu-utils qemu-user-static
|
|
sudo apt-get install ${{ matrix.xcc_pkg }} ${{ matrix.xemu_pkg }}
|
|
- name: Environment info
|
|
run: |
|
|
echo && which $XCC
|
|
echo && $XCC --version
|
|
echo && $XCC -v # Show built-in specs
|
|
echo && which $XEMU
|
|
echo && $XEMU --version
|
|
- name: ARM
|
|
if: ${{ matrix.name == 'ARM' }}
|
|
run: |
|
|
LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
|
|
- name: ARM64
|
|
if: ${{ matrix.name == 'ARM64' }}
|
|
run: |
|
|
LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
|
|
- name: PPC
|
|
if: ${{ matrix.name == 'PPC' }}
|
|
run: |
|
|
LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
|
|
- name: PPC64LE
|
|
if: ${{ matrix.name == 'PPC64LE' }}
|
|
run: |
|
|
LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
|
|
- name: S390X
|
|
if: ${{ matrix.name == 'S390X' }}
|
|
run: |
|
|
LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
|
|
- name: MIPS
|
|
if: ${{ matrix.name == 'MIPS' }}
|
|
run: |
|
|
LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
|
|
- name: M68K
|
|
if: ${{ matrix.name == 'M68K' }}
|
|
run: |
|
|
LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check
|
|
|
|
mingw-short-test:
|
|
runs-on: windows-2019
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include: [
|
|
{ compiler: gcc, platform: x64, script: "CFLAGS=-Werror make -j allzstd DEBUGLEVEL=2"},
|
|
{ compiler: gcc, platform: x86, script: "CFLAGS=-Werror make -j allzstd"},
|
|
{ compiler: clang, platform: x64, script: "CFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion' make -j allzstd V=1"},
|
|
]
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Mingw short test
|
|
run: |
|
|
ECHO "Building ${{matrix.compiler}} ${{matrix.platform}}"
|
|
$env:PATH_ORIGINAL = $env:PATH
|
|
$env:PATH_MINGW32 = "C:\msys64\mingw32\bin"
|
|
$env:PATH_MINGW64 = "C:\msys64\mingw64\bin"
|
|
COPY C:\msys64\usr\bin\make.exe C:\msys64\mingw32\bin\make.exe
|
|
COPY C:\msys64\usr\bin\make.exe C:\msys64\mingw64\bin\make.exe
|
|
IF ("${{matrix.platform}}" -eq "x64")
|
|
{
|
|
$env:PATH = $env:PATH_MINGW64 + ";" + $env:PATH_ORIGINAL
|
|
}
|
|
ELSEIF ("${{matrix.platform}}" -eq "x86")
|
|
{
|
|
$env:PATH = $env:PATH_MINGW32 + ";" + $env:PATH_ORIGINAL
|
|
}
|
|
make -v
|
|
sh -c "${{matrix.compiler}} -v"
|
|
$env:CC = "${{matrix.compiler}}"
|
|
sh -c "${{matrix.script}}"
|
|
ECHO "Testing ${{matrix.compiler}} ${{matrix.platform}}"
|
|
make clean
|
|
make check
|
|
|
|
|
|
visual-runtime-tests:
|
|
runs-on: windows-2019
|
|
strategy:
|
|
matrix:
|
|
platform: [x64, Win32]
|
|
configuration: [Release]
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Add MSBuild to PATH
|
|
uses: microsoft/setup-msbuild@v1.1.3
|
|
- name: Build and run tests
|
|
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
env:
|
|
ZSTD_BIN: ./zstd.exe
|
|
DATAGEN_BIN: ./datagen.exe
|
|
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
|
|
run: |
|
|
msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v142 /t:Clean,Build /p:Platform=${{matrix.platform}} /p:Configuration=${{matrix.configuration}}
|
|
COPY build\VS2010\bin\${{matrix.platform}}_${{matrix.configuration}}\*.exe tests\
|
|
CD tests
|
|
sh -e playTests.sh
|
|
DIR
|
|
.\fuzzer.exe -T2m
|
|
|
|
intel-cet-compatibility:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Build Zstd
|
|
run: |
|
|
make -j zstd V=1
|
|
readelf -n zstd
|
|
- name: Get Intel SDE
|
|
run: |
|
|
curl -LO https://downloadmirror.intel.com/684899/sde-external-9.0.0-2021-11-07-lin.tar.xz
|
|
tar xJvf sde-external-9.0.0-2021-11-07-lin.tar.xz
|
|
- name: Configure Permissions
|
|
run: |
|
|
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
|
|
- name: Run Under SDE
|
|
run: |
|
|
sde-external-9.0.0-2021-11-07-lin/sde -cet -cet-raise 0 -cet-endbr-exe -cet-stderr -cet-abort -- ./zstd -b3
|
|
|
|
pkg-config:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: debian:testing
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Install dependencies
|
|
run: |
|
|
apt -y update
|
|
apt -y install --no-install-recommends gcc libc6-dev make pkg-config
|
|
- name: Build and install
|
|
run: make -C lib install
|
|
- name: Test pkg-config
|
|
run: |
|
|
cc -Wall -Wextra -Wpedantic -Werror -o simple examples/simple_compression.c $(pkg-config --cflags --libs libzstd)
|
|
./simple LICENSE
|
|
|
|
versions-compatibility:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
- name: Versions Compatibility Test
|
|
run: |
|
|
make -C tests versionsTest
|
|
|
|
|
|
# For reference : icc tests
|
|
# icc tests are currently failing on Github Actions, likely to issues during installation stage
|
|
# To be fixed later
|
|
#
|
|
# icc:
|
|
# name: icc-check
|
|
# runs-on: ubuntu-latest
|
|
# steps:
|
|
# - name: install icc
|
|
# run: |
|
|
# export DEBIAN_FRONTEND=noninteractive
|
|
# sudo apt-get -qqq update
|
|
# sudo apt-get install -y wget build-essential pkg-config cmake ca-certificates gnupg
|
|
# sudo wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
|
|
# sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
|
|
# sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
|
|
# sudo apt-get update
|
|
# sudo apt-get install -y intel-basekit intel-hpckit
|
|
# - uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3
|
|
# - name: make check
|
|
# run: |
|
|
# make CC=/opt/intel/oneapi/compiler/latest/linux/bin/intel64/icc check
|