-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2675 from senhuang42/ci_overhaul
[CI][1/2] Re-do the github actions workflows, migrate various travis and appveyor tests.
- Loading branch information
Showing
7 changed files
with
259 additions
and
292 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.