blob: 9fb4a0c8b71579f6452e10ac2ead9c1480b88d20 [file] [log] [blame]
Bimba Shresthaa49a4852020-05-14 12:35:37 -05001name: generic-dev
2
3on:
4 pull_request:
5 branches: [ dev, master, actionsTest ]
6
7jobs:
8
Bimba Shrestha0ce5f702020-06-02 09:07:45 -07009# Dev PR jobs that still have to be migrated from travis
10#
Bimba Shresthaa49a4852020-05-14 12:35:37 -050011# icc (need self-hosted)
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070012# versionTag
Bimba Shresthaa49a4852020-05-14 12:35:37 -050013# valgrindTest (keeps failing for some reason. need investigation)
14# staticAnalyze (need trusty so need self-hosted)
15# pcc-fuzz: (need trusty so need self-hosted)
Bimba Shrestha2598af42020-07-08 11:11:45 -070016# min-decomp-macros (flakey)
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070017#
18# setting up self-hosted is pretty straightforward, but
Bimba Shresthaa49a4852020-05-14 12:35:37 -050019# I need admins permissions to the repo for that it looks like
20# So I'm tabling that for now
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070021#
Bimba Shresthaa49a4852020-05-14 12:35:37 -050022# The master branch exclusive jobs will be in a separate
23# workflow file (the osx tests and meson build that is)
24
25 benchmarking:
26 runs-on: ubuntu-latest
27 steps:
28 - uses: actions/checkout@v2
29 - name: make benchmarking
30 run: make benchmarking
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070031
Bimba Shresthaa49a4852020-05-14 12:35:37 -050032 test:
33 runs-on: ubuntu-latest
34 steps:
35 - uses: actions/checkout@v2
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070036 - name: make test
37 run: make test
38
Bimba Shresthaa49a4852020-05-14 12:35:37 -050039 gcc-6-7-libzstd:
40 runs-on: ubuntu-latest
41 steps:
42 - uses: actions/checkout@v2
43 - name: gcc-6 + gcc-7 + libzstdmt compilation
44 run: |
45 make gcc6install gcc7install
46 CC=gcc-6 CFLAGS=-Werror make -j all
47 make clean
48 CC=gcc-7 CFLAGS=-Werror make -j all
49 make clean
50 LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
51 make -C tests zbufftest-dll
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070052
Bimba Shresthaa49a4852020-05-14 12:35:37 -050053 gcc-8-asan-ubsan-testzstd:
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070054 runs-on: ubuntu-16.04 # fails on 18.04
Bimba Shresthaa49a4852020-05-14 12:35:37 -050055 steps:
56 - uses: actions/checkout@v2
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070057 - name: gcc-8 + ASan + UBSan + Test Zstd
58 run: |
Bimba Shresthaa49a4852020-05-14 12:35:37 -050059 make gcc8install
60 CC=gcc-8 CFLAGS="-Werror" make -j all
61 make clean
62 CC=gcc-8 make -j uasan-test-zstd </dev/null
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070063
Bimba Shresthaa49a4852020-05-14 12:35:37 -050064 gcc-6-asan-ubsan-testzstd-32bit:
65 runs-on: ubuntu-latest
66 steps:
67 - uses: actions/checkout@v2
68 - name: gcc-6 + ASan + UBSan + Test Zstd, 32bit mode
69 run: |
70 make gcc6install libc6install
71 CC=gcc-6 CFLAGS="-Werror -m32" make -j all32
72 make clean
73 CC=gcc-6 make -j uasan-test-zstd32
74
75 clang-38-msan-testzstd:
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070076 runs-on: ubuntu-16.04 # fails on 18.04
Bimba Shresthaa49a4852020-05-14 12:35:37 -050077 steps:
78 - uses: actions/checkout@v2
79 - name: clang-3.8 + MSan + Test Zstd
80 run: |
81 # make clang38install (doesn't work)
82 sudo apt-add-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main"
83 sudo apt-get update
84 sudo apt-get install clang-3.8
85 CC=clang-3.8 make clean msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0
86
Bimba Shresthaa49a4852020-05-14 12:35:37 -050087 cmake-build-and-test-check:
88 runs-on: ubuntu-latest
89 steps:
90 - uses: actions/checkout@v2
91 - name: cmake build and test check
92 run: make cmakebuild
93
94 gcc-8-asan-ubsan-fuzz:
95 runs-on: ubuntu-latest
96 steps:
97 - uses: actions/checkout@v2
98 - name: gcc-8 + ASan + UBSan + Fuzz Test
99 run: |
100 make gcc8install
W. Felix Handtee991f992020-09-17 13:28:20 -0400101 CC=gcc-8 FUZZER_FLAGS="--long-tests" make clean uasan-fuzztest
Bimba Shresthaa49a4852020-05-14 12:35:37 -0500102
103 gcc-6-asan-ubsan-fuzz32:
104 runs-on: ubuntu-latest
105 steps:
106 - uses: actions/checkout@v2
107 - name: gcc-6 + ASan + UBSan + Fuzz Test 32bit
108 run: |
109 make gcc6install libc6install
W. Felix Handtee991f992020-09-17 13:28:20 -0400110 CC=gcc-6 CFLAGS="-O2 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
Bimba Shresthaa49a4852020-05-14 12:35:37 -0500111
112 clang-38-msan-fuzz:
113 runs-on: ubuntu-16.04 # fails on 18.04
114 steps:
115 - uses: actions/checkout@v2
116 - name: clang-3.8 + MSan + Fuzz Test
117 run: |
118 # make clang38install (doesn't work)
119 sudo apt-add-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main"
120 sudo apt-get update
121 sudo apt-get install clang-3.8
122 CC=clang-3.8 make clean msan-fuzztest
123
124 asan-ubsan-msan-regression:
125 runs-on: ubuntu-latest
126 steps:
127 - uses: actions/checkout@v2
128 - name: ASan + UBSan + MSan + Regression Test
129 run: |
130 make -j uasanregressiontest
131 make clean
132 make -j msanregressiontest
Bimba Shrestha0ce5f702020-06-02 09:07:45 -0700133
Bimba Shresthaa49a4852020-05-14 12:35:37 -0500134 cpp-gnu90-c99-compatibility:
135 runs-on: ubuntu-latest
136 steps:
137 - uses: actions/checkout@v2
138 - name: C++, gnu90 and c99 compatibility
139 run: |
140 make cxxtest
141 make clean
142 make gnu90build
143 make clean
144 make c99build
145 make clean
146 make travis-install
147
148 mingw-cross-compilation:
149 runs-on: ubuntu-latest
150 steps:
151 - uses: actions/checkout@v2
152 - name: mingw cross-compilation
153 run: |
154 # sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix; (doesn't work)
155 sudo apt-get install gcc-mingw-w64
156 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ CFLAGS="-Werror -O1" make zstd
Bimba Shrestha12185ec2020-06-02 09:08:16 -0700157
Nick Terrell51dd7e62020-08-25 16:28:41 -0700158# TODO: Broken test - fix and uncomment
159# armbuild:
160# runs-on: ubuntu-16.04 # doesn't work on latest
161# steps:
162# - uses: actions/checkout@v2
163# - name: ARM Build Test
164# run: |
165# make arminstall
166# make armbuild
Bimba Shrestha4d6e4a22020-06-18 11:52:40 -0700167
Nick Terrell51dd7e62020-08-25 16:28:41 -0700168# TODO: Broken test - fix and uncomment
169# armfuzz:
170# runs-on: ubuntu-16.04 # doesn't work on latest
171# steps:
172# - uses: actions/checkout@v2
173# - name: Qemu ARM emulation + Fuzz Test
174# run: |
175# make arminstall
176# make armfuzz
Bimba Shrestha4d6e4a22020-06-18 11:52:40 -0700177
Bimba Shrestha12185ec2020-06-02 09:08:16 -0700178 bourne-shell:
179 runs-on: ubuntu-latest
180 steps:
181 - uses: actions/checkout@v2
182 - name: Bourne shell compatibility (shellcheck)
183 run: |
184 wget https://github.com/koalaman/shellcheck/releases/download/v0.7.1/shellcheck-v0.7.1.linux.x86_64.tar.xz
185 tar -xf shellcheck-v0.7.1.linux.x86_64.tar.xz
Bimba Shresthaeee59be2020-06-02 09:15:24 -0700186 shellcheck-v0.7.1/shellcheck --shell=sh --severity=warning --exclude=SC2010 tests/playTests.sh
Bimba Shresthab413dac2020-08-13 12:45:28 -0500187
188 icc:
189 name: icc-check
190 runs-on: ubuntu-latest
191 steps:
192 - name: install icc
193 run: |
194 export DEBIAN_FRONTEND=noninteractive
195 sudo apt-get -qqq update
196 sudo apt-get install -y wget build-essential pkg-config cmake ca-certificates gnupg
197 sudo wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
198 sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
Bimba Shresthaac8ded72020-12-05 09:42:44 -0600199 sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
Bimba Shresthab413dac2020-08-13 12:45:28 -0500200 sudo apt-get update
Bimba Shresthaac8ded72020-12-05 09:42:44 -0600201 sudo apt-get install -y intel-basekit intel-hpckit
Bimba Shresthab413dac2020-08-13 12:45:28 -0500202 - uses: actions/checkout@v2
203 - name: make check
204 run: |
205 make CC=/opt/intel/oneapi/compiler/latest/linux/bin/intel64/icc check