Merge pull request #2675 from senhuang42/ci_overhaul
[CI][1/2] Re-do the github actions workflows, migrate various travis and appveyor tests.dev
commit
414bcf239b
|
@ -0,0 +1,165 @@
|
||||||
|
name: dev-long-tests
|
||||||
|
# Tests longer than 10mn
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: long-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches: [ dev, release, actionsTest ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
make-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
DEVNULLRIGHTS: 1
|
||||||
|
READFROMBLOCKDEVICE: 1
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: make test
|
||||||
|
run: make test
|
||||||
|
|
||||||
|
make-test-osx:
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: OS-X test
|
||||||
|
run: make test # make -c lib all doesn't work because of the fact that it's not a tty
|
||||||
|
|
||||||
|
tsan-zstreamtest:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: thread sanitizer zstreamtest
|
||||||
|
run: CC=clang ZSTREAM_TESTTIME=-T3mn make tsan-test-zstream
|
||||||
|
|
||||||
|
tsan-fuzztest:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: thread sanitizer fuzztest
|
||||||
|
run: CC=clang make tsan-fuzztest
|
||||||
|
|
||||||
|
gcc-8-asan-ubsan-testzstd:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: gcc-8 + ASan + UBSan + Test Zstd
|
||||||
|
run: |
|
||||||
|
make gcc8install
|
||||||
|
CC=gcc-8 make -j uasan-test-zstd </dev/null V=1
|
||||||
|
|
||||||
|
gcc-asan-ubsan-testzstd-32bit:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: ASan + UBSan + Test Zstd, 32bit mode
|
||||||
|
run: |
|
||||||
|
make libc6install
|
||||||
|
make -j uasan-test-zstd32 V=1
|
||||||
|
|
||||||
|
# Note : external libraries must be turned off when using MSAN tests,
|
||||||
|
# because they are not msan-instrumented,
|
||||||
|
# so any data coming from these libraries is always considered "uninitialized"
|
||||||
|
|
||||||
|
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-asan-ubsan-fuzz32:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: ASan + UBSan + Fuzz Test 32bit
|
||||||
|
run: |
|
||||||
|
make libc6install
|
||||||
|
CFLAGS="-O3 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
|
||||||
|
|
||||||
|
asan-ubsan-regression:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: ASan + UBSan + Regression Test
|
||||||
|
run: make -j uasanregressiontest
|
||||||
|
|
||||||
|
msan-regression:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: MSan + Regression Test
|
||||||
|
run: make -j msanregressiontest
|
||||||
|
|
||||||
|
clang-msan-fuzz:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: clang + MSan + Fuzz Test
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install clang
|
||||||
|
CC=clang FUZZER_FLAGS="--long-tests" make clean msan-fuzztest
|
||||||
|
|
||||||
|
clang-msan-testzstd:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: clang + MSan + Test Zstd
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install clang
|
||||||
|
CC=clang make msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0 V=1
|
||||||
|
|
||||||
|
armfuzz:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Qemu ARM emulation + Fuzz Test
|
||||||
|
run: |
|
||||||
|
make arminstall
|
||||||
|
make armfuzz
|
||||||
|
|
||||||
|
valgrind-fuzz-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: valgrind + fuzz test stack mode # ~ 7mn
|
||||||
|
shell: 'script -q -e -c "bash {0}"'
|
||||||
|
run: |
|
||||||
|
make valgrindinstall
|
||||||
|
make -C tests valgrindTest
|
||||||
|
make clean
|
||||||
|
make -C tests test-fuzzer-stackmode
|
||||||
|
|
||||||
|
oss-fuzz:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
sanitizer: [address, undefined, memory]
|
||||||
|
steps:
|
||||||
|
- name: Build Fuzzers (${{ matrix.sanitizer }})
|
||||||
|
id: build
|
||||||
|
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
|
||||||
|
with:
|
||||||
|
oss-fuzz-project-name: 'zstd'
|
||||||
|
dry-run: false
|
||||||
|
sanitizer: ${{ matrix.sanitizer }}
|
||||||
|
- name: Run Fuzzers (${{ matrix.sanitizer }})
|
||||||
|
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
|
||||||
|
with:
|
||||||
|
oss-fuzz-project-name: 'zstd'
|
||||||
|
fuzz-seconds: 600
|
||||||
|
dry-run: false
|
||||||
|
sanitizer: ${{ matrix.sanitizer }}
|
||||||
|
- name: Upload Crash
|
||||||
|
uses: actions/upload-artifact@v1
|
||||||
|
if: failure() && steps.build.outcome == 'success'
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.sanitizer }}-artifacts
|
||||||
|
path: ./out/artifacts
|
|
@ -1,25 +1,22 @@
|
||||||
name: generic-dev
|
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:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ dev, release, actionsTest ]
|
branches: [ dev, release, actionsTest ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
linux-kernel:
|
||||||
# Dev PR jobs that still have to be migrated from travis
|
runs-on: ubuntu-latest
|
||||||
#
|
steps:
|
||||||
# versionTag (only on release tags)
|
- uses: actions/checkout@v2
|
||||||
# valgrindTest (keeps failing for some reason. need investigation)
|
- name: linux kernel, library + build + test
|
||||||
# staticAnalyze (need trusty so need self-hosted)
|
run: make -C contrib/linux-kernel test CFLAGS="-Werror -Wunused-const-variable -Wunused-but-set-variable"
|
||||||
# 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 release branch exclusive jobs will be in a separate
|
|
||||||
# workflow file (the osx tests and meson build that is)
|
|
||||||
|
|
||||||
benchmarking:
|
benchmarking:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -28,16 +25,6 @@ jobs:
|
||||||
- name: make benchmarking
|
- name: make benchmarking
|
||||||
run: make benchmarking
|
run: make benchmarking
|
||||||
|
|
||||||
test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
env:
|
|
||||||
DEVNULLRIGHTS: 1
|
|
||||||
READFROMBLOCKDEVICE: 1
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: make test
|
|
||||||
run: make test
|
|
||||||
|
|
||||||
check-32bit: # designed to catch https://github.com/facebook/zstd/issues/2428
|
check-32bit: # designed to catch https://github.com/facebook/zstd/issues/2428
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
@ -62,42 +49,6 @@ jobs:
|
||||||
# candidate test (to check) : underlink test
|
# candidate test (to check) : underlink test
|
||||||
# LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked
|
# LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked
|
||||||
|
|
||||||
gcc-8-asan-ubsan-testzstd:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
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 V=1
|
|
||||||
|
|
||||||
gcc-asan-ubsan-testzstd-32bit:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: ASan + UBSan + Test Zstd, 32bit mode
|
|
||||||
run: |
|
|
||||||
make libc6install
|
|
||||||
CFLAGS="-Werror -m32" make -j all32
|
|
||||||
make clean
|
|
||||||
make -j uasan-test-zstd32 V=1
|
|
||||||
|
|
||||||
clang-msan-testzstd:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: clang + MSan + Test Zstd
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install clang
|
|
||||||
CC=clang make msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0 V=1
|
|
||||||
|
|
||||||
# Note : external libraries must be turned off when using MSAN tests,
|
|
||||||
# because they are not msan-instrumented,
|
|
||||||
# so any data coming from these libraries is always considered "uninitialized"
|
|
||||||
|
|
||||||
cmake-build-and-test-check:
|
cmake-build-and-test-check:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
@ -109,44 +60,6 @@ jobs:
|
||||||
cd "../zstd source"
|
cd "../zstd source"
|
||||||
FUZZERTEST=-T1mn ZSTREAM_TESTTIME=-T1mn make cmakebuild
|
FUZZERTEST=-T1mn ZSTREAM_TESTTIME=-T1mn 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-asan-ubsan-fuzz32:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: ASan + UBSan + Fuzz Test 32bit
|
|
||||||
run: |
|
|
||||||
make libc6install
|
|
||||||
CFLAGS="-O2 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
|
|
||||||
|
|
||||||
clang-msan-fuzz:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: clang + MSan + Fuzz Test
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install clang
|
|
||||||
CC=clang FUZZER_FLAGS="--long-tests" 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:
|
cpp-gnu90-c99-compatibility:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
@ -180,15 +93,6 @@ jobs:
|
||||||
make arminstall
|
make arminstall
|
||||||
make armbuild
|
make armbuild
|
||||||
|
|
||||||
armfuzz:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Qemu ARM emulation + Fuzz Test
|
|
||||||
run: |
|
|
||||||
make arminstall
|
|
||||||
make armfuzz
|
|
||||||
|
|
||||||
bourne-shell:
|
bourne-shell:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
@ -199,6 +103,65 @@ jobs:
|
||||||
tar -xf 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
|
shellcheck-v0.7.1/shellcheck --shell=sh --severity=warning --exclude=SC2010 tests/playTests.sh
|
||||||
|
|
||||||
|
zlib-wrapper:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: zlib wrapper test
|
||||||
|
run: |
|
||||||
|
make valgrindinstall
|
||||||
|
make -C zlibWrapper test
|
||||||
|
make -C zlibWrapper valgrindTest
|
||||||
|
|
||||||
|
lz4-threadpool-partial-libs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: LZ4, thread pool, and partial libs 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_partial_builds.sh
|
||||||
|
|
||||||
|
gcc-make-tests-32bit:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Make all, 32bit mode
|
||||||
|
run: |
|
||||||
|
make libc6install
|
||||||
|
CFLAGS="-Werror -m32" make -j all32
|
||||||
|
|
||||||
|
gcc-8-make:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: gcc-8 build
|
||||||
|
run: |
|
||||||
|
make gcc8install
|
||||||
|
CC=gcc-8 CFLAGS="-Werror" make -j all
|
||||||
|
|
||||||
|
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@v2
|
||||||
|
- name: Add MSBuild to PATH
|
||||||
|
uses: microsoft/setup-msbuild@v1.0.2
|
||||||
|
- 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}}
|
||||||
|
|
||||||
# For reference : icc tests
|
# For reference : icc tests
|
||||||
# icc tests are currently failing on Github Actions, likely to issues during installation stage
|
# icc tests are currently failing on Github Actions, likely to issues during installation stage
|
||||||
# To be fixed later
|
# To be fixed later
|
|
@ -1,59 +0,0 @@
|
||||||
name: generic-release
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
# This will eventually only be for pushes to release
|
|
||||||
# but for dogfooding purposes, I'm running it even
|
|
||||||
# on dev pushes
|
|
||||||
branches: [ dev, release, actionsTest ]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# missing jobs
|
|
||||||
#
|
|
||||||
# ppc64le + fuzz test
|
|
||||||
# Qemu PPC64 + Fuzz test
|
|
||||||
# Qemu aarch64 + Fuzz Test (on Xenial)
|
|
||||||
# versions comp
|
|
||||||
# meson test
|
|
||||||
|
|
||||||
osx:
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: OS-X
|
|
||||||
run: |
|
|
||||||
make test
|
|
||||||
# make -c lib all (need to fix. not working right now)
|
|
||||||
|
|
||||||
tsan:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: thread sanitizer
|
|
||||||
run: |
|
|
||||||
CC=clang make tsan-test-zstream
|
|
||||||
CC=clang make tsan-fuzztest
|
|
||||||
|
|
||||||
zlib-wrapper:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: zlib wrapper test
|
|
||||||
run: |
|
|
||||||
make valgrindinstall
|
|
||||||
make -C zlibWrapper test
|
|
||||||
make -C zlibWrapper valgrindTest
|
|
||||||
|
|
||||||
lz4-threadpool-partial-libs:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: LZ4, thread pool, and partial libs 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_partial_builds.sh
|
|
|
@ -1,13 +0,0 @@
|
||||||
name: linux-kernel
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches: [ dev, release, actionsTest ]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Create linux kernel library + build + test
|
|
||||||
run: make -C contrib/linux-kernel test CFLAGS="-Werror -Wunused-const-variable -Wunused-but-set-variable"
|
|
|
@ -1,30 +0,0 @@
|
||||||
name: CIFuzz
|
|
||||||
on: [pull_request]
|
|
||||||
jobs:
|
|
||||||
Fuzzing:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
sanitizer: [address, undefined]
|
|
||||||
steps:
|
|
||||||
- name: Build Fuzzers (${{ matrix.sanitizer }})
|
|
||||||
id: build
|
|
||||||
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
|
|
||||||
with:
|
|
||||||
oss-fuzz-project-name: 'zstd'
|
|
||||||
dry-run: false
|
|
||||||
sanitizer: ${{ matrix.sanitizer }}
|
|
||||||
- name: Run Fuzzers (${{ matrix.sanitizer }})
|
|
||||||
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
|
|
||||||
with:
|
|
||||||
oss-fuzz-project-name: 'zstd'
|
|
||||||
fuzz-seconds: 600
|
|
||||||
dry-run: false
|
|
||||||
sanitizer: ${{ matrix.sanitizer }}
|
|
||||||
- name: Upload Crash
|
|
||||||
uses: actions/upload-artifact@v1
|
|
||||||
if: failure() && steps.build.outcome == 'success'
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.sanitizer }}-artifacts
|
|
||||||
path: ./out/artifacts
|
|
56
.travis.yml
56
.travis.yml
|
@ -1,5 +1,6 @@
|
||||||
# Medium Tests: Run on all commits/PRs to dev branch
|
# Travis CI is used to test platforms that github-actions currently doesn't support
|
||||||
|
# without either self-hosting or some finnicky work-around. Also, some tests
|
||||||
|
# are troublesome to migrate since GH Actions runs tests not in a tty.
|
||||||
language: c
|
language: c
|
||||||
|
|
||||||
git:
|
git:
|
||||||
|
@ -18,11 +19,10 @@ addons:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- FUZZERTEST=-T2mn
|
- FUZZERTEST=-T1mn
|
||||||
ZSTREAM_TESTTIME=-T2mn
|
ZSTREAM_TESTTIME=-T1mn
|
||||||
DECODECORPUS_TESTTIME=-T1mn
|
DECODECORPUS_TESTTIME=-T1mn
|
||||||
|
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
include:
|
include:
|
||||||
|
@ -32,6 +32,7 @@ matrix:
|
||||||
script:
|
script:
|
||||||
- make check
|
- make check
|
||||||
|
|
||||||
|
# TODO: migrate to GH actions once warnings are fixed
|
||||||
- name: Minimal Decompressor Macros # ~5mn
|
- name: Minimal Decompressor Macros # ~5mn
|
||||||
script:
|
script:
|
||||||
- make clean && make -j all ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
|
- make clean && make -j all ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
|
||||||
|
@ -43,17 +44,17 @@ matrix:
|
||||||
- make clean && make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
|
- 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"
|
- make clean && make check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
|
||||||
|
|
||||||
|
# TODO: migrate to GH actions once newest clang staticanalyze warnings are fixed
|
||||||
- name: static analyzer scanbuild # ~26mn
|
- name: static analyzer scanbuild # ~26mn
|
||||||
dist: trusty # note : it's important to pin down a version of static analyzer, since different versions report different false positives
|
dist: trusty # note : it's important to pin down a version of static analyzer, since different versions report different false positives
|
||||||
script:
|
script:
|
||||||
- make staticAnalyze
|
- make staticAnalyze
|
||||||
|
|
||||||
- name: Valgrind + Fuzz Test Stack Mode # ~ 7mn
|
# GH actions can't run this command on OS-X, non-tty issues
|
||||||
|
- name: OS-X make all lib
|
||||||
|
os: osx
|
||||||
script:
|
script:
|
||||||
- make valgrindinstall
|
- make -C lib all
|
||||||
- make -C tests clean valgrindTest
|
|
||||||
- make clean
|
|
||||||
- make -C tests test-fuzzer-stackmode
|
|
||||||
|
|
||||||
# Introduced to check compat with old toolchains, to prevent e.g. #1872
|
# Introduced to check compat with old toolchains, to prevent e.g. #1872
|
||||||
- name: ARM Build Test (on Trusty)
|
- name: ARM Build Test (on Trusty)
|
||||||
|
@ -68,58 +69,41 @@ matrix:
|
||||||
- make ppcinstall
|
- make ppcinstall
|
||||||
- make ppcfuzz
|
- make ppcfuzz
|
||||||
|
|
||||||
# check release number (release only)
|
# check release number (release/new tag only)
|
||||||
- name: Tag-Specific Test
|
- name: Tag-Specific Test
|
||||||
if: tag =~ ^v[0-9]\.[0-9]
|
if: tag =~ ^v[0-9]\.[0-9]
|
||||||
script:
|
script:
|
||||||
- make -C tests checkTag
|
- make -C tests checkTag
|
||||||
- tests/checkTag "$TRAVIS_BRANCH"
|
- tests/checkTag "$TRAVIS_BRANCH"
|
||||||
|
|
||||||
# tests for release branch and cron job only
|
|
||||||
- name: OS-X # ~13mn
|
|
||||||
if: branch = release
|
|
||||||
os: osx
|
|
||||||
script:
|
|
||||||
- make test
|
|
||||||
- make -C lib all
|
|
||||||
|
|
||||||
- name: Versions Compatibility Test # 11.5mn
|
|
||||||
if: branch = release
|
|
||||||
script:
|
|
||||||
- make -C tests versionsTest
|
|
||||||
|
|
||||||
- name: thread sanitizer # ~29mn
|
|
||||||
if: branch = release
|
|
||||||
script:
|
|
||||||
- make clang38install
|
|
||||||
- CC=clang-3.8 make tsan-test-zstream
|
|
||||||
- CC=clang-3.8 make tsan-fuzztest
|
|
||||||
|
|
||||||
- name: PPC64LE + Fuzz test # ~13mn
|
- name: PPC64LE + Fuzz test # ~13mn
|
||||||
if: branch = release
|
|
||||||
arch: ppc64le
|
arch: ppc64le
|
||||||
|
env:
|
||||||
|
- FUZZER_FLAGS=--no-big-tests
|
||||||
|
- MOREFLAGS="-static"
|
||||||
script:
|
script:
|
||||||
- cat /proc/cpuinfo
|
- cat /proc/cpuinfo
|
||||||
- make test
|
- make -C tests fuzztest
|
||||||
|
|
||||||
- name: Qemu PPC64 + Fuzz test # ~13mn, presumed Big-Endian (?)
|
- name: Qemu PPC64 + Fuzz test # ~13mn, presumed Big-Endian (?)
|
||||||
dist: trusty # note : PPC64 cross-compilation for Qemu tests seems broken on Xenial
|
dist: trusty # note : PPC64 cross-compilation for Qemu tests seems broken on Xenial
|
||||||
if: branch = release
|
|
||||||
script:
|
script:
|
||||||
- make ppcinstall
|
- make ppcinstall
|
||||||
- make ppc64fuzz
|
- make ppc64fuzz
|
||||||
|
|
||||||
# note : we already have aarch64 tests on hardware
|
# note : we already have aarch64 tests on hardware
|
||||||
- name: Qemu aarch64 + Fuzz Test (on Xenial) # ~14mn
|
- name: Qemu aarch64 + Fuzz Test (on Xenial) # ~14mn
|
||||||
if: branch = release
|
|
||||||
dist: xenial
|
dist: xenial
|
||||||
script:
|
script:
|
||||||
- make arminstall
|
- make arminstall
|
||||||
- make aarch64fuzz
|
- make aarch64fuzz
|
||||||
|
|
||||||
|
- name: Versions Compatibility Test # 11.5mn
|
||||||
|
script:
|
||||||
|
- make -C tests versionsTest
|
||||||
|
|
||||||
# meson dedicated test
|
# meson dedicated test
|
||||||
- name: Xenial (Meson + clang) # ~15mn
|
- name: Xenial (Meson + clang) # ~15mn
|
||||||
if: branch = release
|
|
||||||
dist: bionic
|
dist: bionic
|
||||||
language: cpp
|
language: cpp
|
||||||
compiler: clang
|
compiler: clang
|
||||||
|
|
43
appveyor.yml
43
appveyor.yml
|
@ -151,16 +151,6 @@
|
||||||
DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
|
DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
|
||||||
MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
|
MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
|
||||||
COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2013_%PLATFORM%_%CONFIGURATION%.exe &&
|
COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2013_%PLATFORM%_%CONFIGURATION%.exe &&
|
||||||
ECHO *** &&
|
|
||||||
ECHO *** Building Visual Studio 2015 %PLATFORM%\%CONFIGURATION% &&
|
|
||||||
ECHO *** &&
|
|
||||||
msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
|
|
||||||
DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
|
|
||||||
MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
|
|
||||||
msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
|
|
||||||
DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
|
|
||||||
MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
|
|
||||||
COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2015_%PLATFORM%_%CONFIGURATION%.exe &&
|
|
||||||
COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe tests\
|
COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe tests\
|
||||||
)
|
)
|
||||||
- if [%HOST%]==[cmake-visual] (
|
- if [%HOST%]==[cmake-visual] (
|
||||||
|
@ -224,23 +214,6 @@
|
||||||
PLATFORM: "x64"
|
PLATFORM: "x64"
|
||||||
SCRIPT: "CFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion' make -j allzstd V=1"
|
SCRIPT: "CFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion' make -j allzstd V=1"
|
||||||
|
|
||||||
- COMPILER: "visual"
|
|
||||||
HOST: "visual"
|
|
||||||
PLATFORM: "x64"
|
|
||||||
CONFIGURATION: "Debug"
|
|
||||||
- COMPILER: "visual"
|
|
||||||
HOST: "visual"
|
|
||||||
PLATFORM: "Win32"
|
|
||||||
CONFIGURATION: "Debug"
|
|
||||||
- COMPILER: "visual"
|
|
||||||
HOST: "visual"
|
|
||||||
PLATFORM: "x64"
|
|
||||||
CONFIGURATION: "Release"
|
|
||||||
- COMPILER: "visual"
|
|
||||||
HOST: "visual"
|
|
||||||
PLATFORM: "Win32"
|
|
||||||
CONFIGURATION: "Release"
|
|
||||||
|
|
||||||
- COMPILER: "clang-cl"
|
- COMPILER: "clang-cl"
|
||||||
HOST: "cmake-visual"
|
HOST: "cmake-visual"
|
||||||
PLATFORM: "x64"
|
PLATFORM: "x64"
|
||||||
|
@ -266,9 +239,6 @@
|
||||||
COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\make.exe &&
|
COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\make.exe &&
|
||||||
COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin\make.exe
|
COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin\make.exe
|
||||||
)
|
)
|
||||||
- IF [%HOST%]==[visual] IF [%PLATFORM%]==[x64] (
|
|
||||||
SET ADDITIONALPARAM=/p:LibraryPath="C:\Program Files\Microsoft SDKs\Windows\v7.1\lib\x64;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\;C:\Program Files (x86)\Microsoft Visual Studio 10.0\lib\amd64;"
|
|
||||||
)
|
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- ECHO Building %COMPILER% %PLATFORM% %CONFIGURATION%
|
- ECHO Building %COMPILER% %PLATFORM% %CONFIGURATION%
|
||||||
|
@ -294,19 +264,6 @@
|
||||||
set "CC=%COMPILER%" &&
|
set "CC=%COMPILER%" &&
|
||||||
sh -c "%SCRIPT%"
|
sh -c "%SCRIPT%"
|
||||||
)
|
)
|
||||||
- if [%HOST%]==[visual] (
|
|
||||||
ECHO *** &&
|
|
||||||
ECHO *** Building Visual Studio 2015 %PLATFORM%\%CONFIGURATION% &&
|
|
||||||
ECHO *** &&
|
|
||||||
msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
|
|
||||||
DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
|
|
||||||
MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
|
|
||||||
msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
|
|
||||||
DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
|
|
||||||
MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
|
|
||||||
COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2015_%PLATFORM%_%CONFIGURATION%.exe &&
|
|
||||||
COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe tests\
|
|
||||||
)
|
|
||||||
- if [%HOST%]==[cmake-visual] (
|
- if [%HOST%]==[cmake-visual] (
|
||||||
ECHO *** &&
|
ECHO *** &&
|
||||||
ECHO *** Building %CMAKE_GENERATOR% ^(%CMAKE_GENERATOR_TOOLSET%^) %PLATFORM%\%CONFIGURATION% &&
|
ECHO *** Building %CMAKE_GENERATOR% ^(%CMAKE_GENERATOR_TOOLSET%^) %PLATFORM%\%CONFIGURATION% &&
|
||||||
|
|
Loading…
Reference in New Issue