206 lines
6.1 KiB
YAML
206 lines
6.1 KiB
YAML
name: generic-dev
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [ dev, master, actionsTest ]
|
|
|
|
jobs:
|
|
|
|
# Dev PR jobs that still have to be migrated from travis
|
|
#
|
|
# icc (need self-hosted)
|
|
# versionTag
|
|
# valgrindTest (keeps failing for some reason. need investigation)
|
|
# staticAnalyze (need trusty so need self-hosted)
|
|
# pcc-fuzz: (need trusty so need self-hosted)
|
|
# min-decomp-macros (flakey)
|
|
#
|
|
# setting up self-hosted is pretty straightforward, but
|
|
# I need admins permissions to the repo for that it looks like
|
|
# So I'm tabling that for now
|
|
#
|
|
# The master branch exclusive jobs will be in a separate
|
|
# workflow file (the osx tests and meson build that is)
|
|
|
|
benchmarking:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: make benchmarking
|
|
run: make benchmarking
|
|
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: make test
|
|
run: make test
|
|
|
|
gcc-6-7-libzstd:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: gcc-6 + gcc-7 + libzstdmt compilation
|
|
run: |
|
|
make gcc6install gcc7install
|
|
CC=gcc-6 CFLAGS=-Werror make -j all
|
|
make clean
|
|
CC=gcc-7 CFLAGS=-Werror make -j all
|
|
make clean
|
|
LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
|
|
make -C tests zbufftest-dll
|
|
|
|
gcc-8-asan-ubsan-testzstd:
|
|
runs-on: ubuntu-16.04 # fails on 18.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: gcc-8 + ASan + UBSan + Test Zstd
|
|
run: |
|
|
make gcc8install
|
|
CC=gcc-8 CFLAGS="-Werror" make -j all
|
|
make clean
|
|
CC=gcc-8 make -j uasan-test-zstd </dev/null
|
|
|
|
gcc-6-asan-ubsan-testzstd-32bit:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: gcc-6 + ASan + UBSan + Test Zstd, 32bit mode
|
|
run: |
|
|
make gcc6install libc6install
|
|
CC=gcc-6 CFLAGS="-Werror -m32" make -j all32
|
|
make clean
|
|
CC=gcc-6 make -j uasan-test-zstd32
|
|
|
|
clang-38-msan-testzstd:
|
|
runs-on: ubuntu-16.04 # fails on 18.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: clang-3.8 + MSan + Test Zstd
|
|
run: |
|
|
# make clang38install (doesn't work)
|
|
sudo apt-add-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main"
|
|
sudo apt-get update
|
|
sudo apt-get install clang-3.8
|
|
CC=clang-3.8 make clean msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0
|
|
|
|
cmake-build-and-test-check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: cmake build and test check
|
|
run: make cmakebuild
|
|
|
|
gcc-8-asan-ubsan-fuzz:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: gcc-8 + ASan + UBSan + Fuzz Test
|
|
run: |
|
|
make gcc8install
|
|
CC=gcc-8 FUZZER_FLAGS="--long-tests" make clean uasan-fuzztest
|
|
|
|
gcc-6-asan-ubsan-fuzz32:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: gcc-6 + ASan + UBSan + Fuzz Test 32bit
|
|
run: |
|
|
make gcc6install libc6install
|
|
CC=gcc-6 CFLAGS="-O2 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
|
|
|
|
clang-38-msan-fuzz:
|
|
runs-on: ubuntu-16.04 # fails on 18.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: clang-3.8 + MSan + Fuzz Test
|
|
run: |
|
|
# make clang38install (doesn't work)
|
|
sudo apt-add-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main"
|
|
sudo apt-get update
|
|
sudo apt-get install clang-3.8
|
|
CC=clang-3.8 make clean msan-fuzztest
|
|
|
|
asan-ubsan-msan-regression:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: ASan + UBSan + MSan + Regression Test
|
|
run: |
|
|
make -j uasanregressiontest
|
|
make clean
|
|
make -j msanregressiontest
|
|
|
|
cpp-gnu90-c99-compatibility:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: C++, gnu90 and c99 compatibility
|
|
run: |
|
|
make cxxtest
|
|
make clean
|
|
make gnu90build
|
|
make clean
|
|
make c99build
|
|
make clean
|
|
make travis-install
|
|
|
|
mingw-cross-compilation:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- 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 install gcc-mingw-w64
|
|
CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ CFLAGS="-Werror -O1" make zstd
|
|
|
|
# TODO: Broken test - fix and uncomment
|
|
# armbuild:
|
|
# runs-on: ubuntu-16.04 # doesn't work on latest
|
|
# steps:
|
|
# - uses: actions/checkout@v2
|
|
# - name: ARM Build Test
|
|
# run: |
|
|
# make arminstall
|
|
# make armbuild
|
|
|
|
# TODO: Broken test - fix and uncomment
|
|
# armfuzz:
|
|
# runs-on: ubuntu-16.04 # doesn't work on latest
|
|
# steps:
|
|
# - uses: actions/checkout@v2
|
|
# - name: Qemu ARM emulation + Fuzz Test
|
|
# run: |
|
|
# make arminstall
|
|
# make armfuzz
|
|
|
|
bourne-shell:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- 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
|
|
|
|
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
|
|
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
|
|
sudo apt-get update
|
|
sudo apt-get install -y intel-oneapi-icc
|
|
- uses: actions/checkout@v2
|
|
- name: make check
|
|
run: |
|
|
make CC=/opt/intel/oneapi/compiler/latest/linux/bin/intel64/icc check
|