blob: e0e2e0fd7ef0d3cb134e358a231dfab485a30473 [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 Shrestha0ce5f702020-06-02 09:07:45 -070016#
17# setting up self-hosted is pretty straightforward, but
Bimba Shresthaa49a4852020-05-14 12:35:37 -050018# I need admins permissions to the repo for that it looks like
19# So I'm tabling that for now
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070020#
Bimba Shresthaa49a4852020-05-14 12:35:37 -050021# The master branch exclusive jobs will be in a separate
22# workflow file (the osx tests and meson build that is)
23
24 benchmarking:
25 runs-on: ubuntu-latest
26 steps:
27 - uses: actions/checkout@v2
28 - name: make benchmarking
29 run: make benchmarking
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070030
Bimba Shresthaa49a4852020-05-14 12:35:37 -050031 test:
32 runs-on: ubuntu-latest
33 steps:
34 - uses: actions/checkout@v2
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070035 - name: make test
36 run: make test
37
Bimba Shresthaa49a4852020-05-14 12:35:37 -050038 gcc-6-7-libzstd:
39 runs-on: ubuntu-latest
40 steps:
41 - uses: actions/checkout@v2
42 - name: gcc-6 + gcc-7 + libzstdmt compilation
43 run: |
44 make gcc6install gcc7install
45 CC=gcc-6 CFLAGS=-Werror make -j all
46 make clean
47 CC=gcc-7 CFLAGS=-Werror make -j all
48 make clean
49 LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
50 make -C tests zbufftest-dll
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070051
Bimba Shresthaa49a4852020-05-14 12:35:37 -050052 gcc-8-asan-ubsan-testzstd:
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070053 runs-on: ubuntu-16.04 # fails on 18.04
Bimba Shresthaa49a4852020-05-14 12:35:37 -050054 steps:
55 - uses: actions/checkout@v2
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070056 - name: gcc-8 + ASan + UBSan + Test Zstd
57 run: |
Bimba Shresthaa49a4852020-05-14 12:35:37 -050058 make gcc8install
59 CC=gcc-8 CFLAGS="-Werror" make -j all
60 make clean
61 CC=gcc-8 make -j uasan-test-zstd </dev/null
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070062
Bimba Shresthaa49a4852020-05-14 12:35:37 -050063 gcc-6-asan-ubsan-testzstd-32bit:
64 runs-on: ubuntu-latest
65 steps:
66 - uses: actions/checkout@v2
67 - name: gcc-6 + ASan + UBSan + Test Zstd, 32bit mode
68 run: |
69 make gcc6install libc6install
70 CC=gcc-6 CFLAGS="-Werror -m32" make -j all32
71 make clean
72 CC=gcc-6 make -j uasan-test-zstd32
73
74 clang-38-msan-testzstd:
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070075 runs-on: ubuntu-16.04 # fails on 18.04
Bimba Shresthaa49a4852020-05-14 12:35:37 -050076 steps:
77 - uses: actions/checkout@v2
78 - name: clang-3.8 + MSan + Test Zstd
79 run: |
80 # make clang38install (doesn't work)
81 sudo apt-add-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main"
82 sudo apt-get update
83 sudo apt-get install clang-3.8
84 CC=clang-3.8 make clean msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0
85
86 min-decomp-macros:
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070087 runs-on: ubuntu-16.04 # fails on 18.04
Bimba Shresthaa49a4852020-05-14 12:35:37 -050088 steps:
89 - uses: actions/checkout@v2
90 - name: Minimal Decompressor Macros
91 run: |
92 make clean
93 DEVNULLRIGHTS=test make -j all check ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
94 make clean
95 DEVNULLRIGHTS=test make -j all check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
96 make clean
97 DEVNULLRIGHTS=test make -j all check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
98 make clean
99 DEVNULLRIGHTS=test make -j all check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
100
101 cmake-build-and-test-check:
102 runs-on: ubuntu-latest
103 steps:
104 - uses: actions/checkout@v2
105 - name: cmake build and test check
106 run: make cmakebuild
107
108 gcc-8-asan-ubsan-fuzz:
109 runs-on: ubuntu-latest
110 steps:
111 - uses: actions/checkout@v2
112 - name: gcc-8 + ASan + UBSan + Fuzz Test
113 run: |
114 make gcc8install
115 CC=gcc-8 make clean uasan-fuzztest
116
117 gcc-6-asan-ubsan-fuzz32:
118 runs-on: ubuntu-latest
119 steps:
120 - uses: actions/checkout@v2
121 - name: gcc-6 + ASan + UBSan + Fuzz Test 32bit
122 run: |
123 make gcc6install libc6install
124 CC=gcc-6 CFLAGS="-O2 -m32" make uasan-fuzztest
125
126 clang-38-msan-fuzz:
127 runs-on: ubuntu-16.04 # fails on 18.04
128 steps:
129 - uses: actions/checkout@v2
130 - name: clang-3.8 + MSan + Fuzz Test
131 run: |
132 # make clang38install (doesn't work)
133 sudo apt-add-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main"
134 sudo apt-get update
135 sudo apt-get install clang-3.8
136 CC=clang-3.8 make clean msan-fuzztest
137
138 asan-ubsan-msan-regression:
139 runs-on: ubuntu-latest
140 steps:
141 - uses: actions/checkout@v2
142 - name: ASan + UBSan + MSan + Regression Test
143 run: |
144 make -j uasanregressiontest
145 make clean
146 make -j msanregressiontest
Bimba Shrestha0ce5f702020-06-02 09:07:45 -0700147
Bimba Shresthaa49a4852020-05-14 12:35:37 -0500148 cpp-gnu90-c99-compatibility:
149 runs-on: ubuntu-latest
150 steps:
151 - uses: actions/checkout@v2
152 - name: C++, gnu90 and c99 compatibility
153 run: |
154 make cxxtest
155 make clean
156 make gnu90build
157 make clean
158 make c99build
159 make clean
160 make travis-install
161
162 mingw-cross-compilation:
163 runs-on: ubuntu-latest
164 steps:
165 - uses: actions/checkout@v2
166 - name: mingw cross-compilation
167 run: |
168 # sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix; (doesn't work)
169 sudo apt-get install gcc-mingw-w64
170 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ CFLAGS="-Werror -O1" make zstd
Bimba Shrestha12185ec2020-06-02 09:08:16 -0700171
Bimba Shrestha4d6e4a22020-06-18 11:52:40 -0700172 armbuild:
173 runs-on: ubuntu-16.04 # doesn't work on latest
174 steps:
175 - uses: actions/checkout@v2
176 - name: ARM Build Test
177 run: |
178 make arminstall
179 make armbuild
180
181 armfuzz:
182 runs-on: ubuntu-16.04 # doesn't work on latest
183 steps:
184 - uses: actions/checkout@v2
185 - name: Qemu ARM emulation + Fuzz Test
186 run: |
187 make arminstall
188 make armfuzz
189
Bimba Shrestha12185ec2020-06-02 09:08:16 -0700190 bourne-shell:
191 runs-on: ubuntu-latest
192 steps:
193 - uses: actions/checkout@v2
194 - name: Bourne shell compatibility (shellcheck)
195 run: |
196 wget https://github.com/koalaman/shellcheck/releases/download/v0.7.1/shellcheck-v0.7.1.linux.x86_64.tar.xz
197 tar -xf shellcheck-v0.7.1.linux.x86_64.tar.xz
Bimba Shresthaeee59be2020-06-02 09:15:24 -0700198 shellcheck-v0.7.1/shellcheck --shell=sh --severity=warning --exclude=SC2010 tests/playTests.sh