blob: 7851363914d065f9ec0d61e86214bc7b12ad1d56 [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)
12# arm/qemu-arm (need self-hosted)
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070013# versionTag
Bimba Shresthaa49a4852020-05-14 12:35:37 -050014# valgrindTest (keeps failing for some reason. need investigation)
15# staticAnalyze (need trusty so need self-hosted)
16# pcc-fuzz: (need trusty so need self-hosted)
17# arm-build-test (need self-hosted)
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070018#
19# setting up self-hosted is pretty straightforward, but
Bimba Shresthaa49a4852020-05-14 12:35:37 -050020# I need admins permissions to the repo for that it looks like
21# So I'm tabling that for now
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070022#
Bimba Shresthaa49a4852020-05-14 12:35:37 -050023# The master branch exclusive jobs will be in a separate
24# workflow file (the osx tests and meson build that is)
25
26 benchmarking:
27 runs-on: ubuntu-latest
28 steps:
29 - uses: actions/checkout@v2
30 - name: make benchmarking
31 run: make benchmarking
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070032
Bimba Shresthaa49a4852020-05-14 12:35:37 -050033 test:
34 runs-on: ubuntu-latest
35 steps:
36 - uses: actions/checkout@v2
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070037 - name: make test
38 run: make test
39
Bimba Shresthaa49a4852020-05-14 12:35:37 -050040 gcc-6-7-libzstd:
41 runs-on: ubuntu-latest
42 steps:
43 - uses: actions/checkout@v2
44 - name: gcc-6 + gcc-7 + libzstdmt compilation
45 run: |
46 make gcc6install gcc7install
47 CC=gcc-6 CFLAGS=-Werror make -j all
48 make clean
49 CC=gcc-7 CFLAGS=-Werror make -j all
50 make clean
51 LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
52 make -C tests zbufftest-dll
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070053
Bimba Shresthaa49a4852020-05-14 12:35:37 -050054 gcc-8-asan-ubsan-testzstd:
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070055 runs-on: ubuntu-16.04 # fails on 18.04
Bimba Shresthaa49a4852020-05-14 12:35:37 -050056 steps:
57 - uses: actions/checkout@v2
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070058 - name: gcc-8 + ASan + UBSan + Test Zstd
59 run: |
Bimba Shresthaa49a4852020-05-14 12:35:37 -050060 make gcc8install
61 CC=gcc-8 CFLAGS="-Werror" make -j all
62 make clean
63 CC=gcc-8 make -j uasan-test-zstd </dev/null
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070064
Bimba Shresthaa49a4852020-05-14 12:35:37 -050065 gcc-6-asan-ubsan-testzstd-32bit:
66 runs-on: ubuntu-latest
67 steps:
68 - uses: actions/checkout@v2
69 - name: gcc-6 + ASan + UBSan + Test Zstd, 32bit mode
70 run: |
71 make gcc6install libc6install
72 CC=gcc-6 CFLAGS="-Werror -m32" make -j all32
73 make clean
74 CC=gcc-6 make -j uasan-test-zstd32
75
76 clang-38-msan-testzstd:
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070077 runs-on: ubuntu-16.04 # fails on 18.04
Bimba Shresthaa49a4852020-05-14 12:35:37 -050078 steps:
79 - uses: actions/checkout@v2
80 - name: clang-3.8 + MSan + Test Zstd
81 run: |
82 # make clang38install (doesn't work)
83 sudo apt-add-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main"
84 sudo apt-get update
85 sudo apt-get install clang-3.8
86 CC=clang-3.8 make clean msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0
87
88 min-decomp-macros:
Bimba Shrestha0ce5f702020-06-02 09:07:45 -070089 runs-on: ubuntu-16.04 # fails on 18.04
Bimba Shresthaa49a4852020-05-14 12:35:37 -050090 steps:
91 - uses: actions/checkout@v2
92 - name: Minimal Decompressor Macros
93 run: |
94 make clean
95 DEVNULLRIGHTS=test make -j all check ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
96 make clean
97 DEVNULLRIGHTS=test make -j all check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
98 make clean
99 DEVNULLRIGHTS=test make -j all check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
100 make clean
101 DEVNULLRIGHTS=test make -j all check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
102
103 cmake-build-and-test-check:
104 runs-on: ubuntu-latest
105 steps:
106 - uses: actions/checkout@v2
107 - name: cmake build and test check
108 run: make cmakebuild
109
110 gcc-8-asan-ubsan-fuzz:
111 runs-on: ubuntu-latest
112 steps:
113 - uses: actions/checkout@v2
114 - name: gcc-8 + ASan + UBSan + Fuzz Test
115 run: |
116 make gcc8install
117 CC=gcc-8 make clean uasan-fuzztest
118
119 gcc-6-asan-ubsan-fuzz32:
120 runs-on: ubuntu-latest
121 steps:
122 - uses: actions/checkout@v2
123 - name: gcc-6 + ASan + UBSan + Fuzz Test 32bit
124 run: |
125 make gcc6install libc6install
126 CC=gcc-6 CFLAGS="-O2 -m32" make uasan-fuzztest
127
128 clang-38-msan-fuzz:
129 runs-on: ubuntu-16.04 # fails on 18.04
130 steps:
131 - uses: actions/checkout@v2
132 - name: clang-3.8 + MSan + Fuzz Test
133 run: |
134 # make clang38install (doesn't work)
135 sudo apt-add-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main"
136 sudo apt-get update
137 sudo apt-get install clang-3.8
138 CC=clang-3.8 make clean msan-fuzztest
139
140 asan-ubsan-msan-regression:
141 runs-on: ubuntu-latest
142 steps:
143 - uses: actions/checkout@v2
144 - name: ASan + UBSan + MSan + Regression Test
145 run: |
146 make -j uasanregressiontest
147 make clean
148 make -j msanregressiontest
Bimba Shrestha0ce5f702020-06-02 09:07:45 -0700149
Bimba Shresthaa49a4852020-05-14 12:35:37 -0500150 cpp-gnu90-c99-compatibility:
151 runs-on: ubuntu-latest
152 steps:
153 - uses: actions/checkout@v2
154 - name: C++, gnu90 and c99 compatibility
155 run: |
156 make cxxtest
157 make clean
158 make gnu90build
159 make clean
160 make c99build
161 make clean
162 make travis-install
163
164 mingw-cross-compilation:
165 runs-on: ubuntu-latest
166 steps:
167 - uses: actions/checkout@v2
168 - name: mingw cross-compilation
169 run: |
170 # sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix; (doesn't work)
171 sudo apt-get install gcc-mingw-w64
172 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ CFLAGS="-Werror -O1" make zstd
Bimba Shrestha12185ec2020-06-02 09:08:16 -0700173
174 bourne-shell:
175 runs-on: ubuntu-latest
176 steps:
177 - uses: actions/checkout@v2
178 - name: Bourne shell compatibility (shellcheck)
179 run: |
180 wget https://github.com/koalaman/shellcheck/releases/download/v0.7.1/shellcheck-v0.7.1.linux.x86_64.tar.xz
181 tar -xf shellcheck-v0.7.1.linux.x86_64.tar.xz
Bimba Shresthaeee59be2020-06-02 09:15:24 -0700182 shellcheck-v0.7.1/shellcheck --shell=sh --severity=warning --exclude=SC2010 tests/playTests.sh