Skip to content

Commit d70baeb

Browse files
authored
Merge pull request official-stockfish#1580 from IIvec/master
New master
2 parents 0e8b4f9 + 2fc1b10 commit d70baeb

File tree

10 files changed

+646
-363
lines changed

10 files changed

+646
-363
lines changed

.github/workflows/stockfish.yml

Lines changed: 9 additions & 338 deletions
Original file line numberDiff line numberDiff line change
@@ -10,341 +10,12 @@ on:
1010
- master
1111
- tools
1212
jobs:
13-
Stockfish:
14-
name: ${{ matrix.config.name }}
15-
runs-on: ${{ matrix.config.os }}
16-
env:
17-
COMPILER: ${{ matrix.config.compiler }}
18-
COMP: ${{ matrix.config.comp }}
19-
CXXFLAGS: "-Werror"
20-
strategy:
21-
matrix:
22-
config:
23-
# set the variable for the required tests:
24-
# run_expensive_tests: true
25-
# run_32bit_tests: true
26-
# run_64bit_tests: true
27-
# run_armv8_tests: true
28-
# run_armv7_tests: true
29-
- {
30-
name: "Ubuntu 20.04 GCC",
31-
os: ubuntu-20.04,
32-
compiler: g++,
33-
comp: gcc,
34-
run_expensive_tests: true,
35-
run_32bit_tests: true,
36-
run_64bit_tests: true,
37-
shell: 'bash {0}'
38-
}
39-
- {
40-
name: "Ubuntu 20.04 Clang",
41-
os: ubuntu-20.04,
42-
compiler: clang++,
43-
comp: clang,
44-
run_32bit_tests: true,
45-
run_64bit_tests: true,
46-
shell: 'bash {0}'
47-
}
48-
- {
49-
name: "Ubuntu 20.04 NDK armv8",
50-
os: ubuntu-20.04,
51-
compiler: aarch64-linux-android21-clang++,
52-
comp: ndk,
53-
run_armv8_tests: false,
54-
shell: 'bash {0}'
55-
}
56-
- {
57-
name: "Ubuntu 20.04 NDK armv7",
58-
os: ubuntu-20.04,
59-
compiler: armv7a-linux-androideabi21-clang++,
60-
comp: ndk,
61-
run_armv7_tests: false,
62-
shell: 'bash {0}'
63-
}
64-
- {
65-
name: "MacOS 12 Apple Clang",
66-
os: macos-12,
67-
compiler: clang++,
68-
comp: clang,
69-
run_64bit_tests: true,
70-
shell: 'bash {0}'
71-
}
72-
- {
73-
name: "MacOS 12 GCC 11",
74-
os: macos-12,
75-
compiler: g++-11,
76-
comp: gcc,
77-
run_64bit_tests: true,
78-
shell: 'bash {0}'
79-
}
80-
- {
81-
name: "Windows 2022 Mingw-w64 GCC x86_64",
82-
os: windows-2022,
83-
compiler: g++,
84-
comp: mingw,
85-
run_64bit_tests: true,
86-
msys_sys: 'mingw64',
87-
msys_env: 'x86_64-gcc',
88-
shell: 'msys2 {0}'
89-
}
90-
- {
91-
name: "Windows 2022 Mingw-w64 GCC i686",
92-
os: windows-2022,
93-
compiler: g++,
94-
comp: mingw,
95-
run_32bit_tests: true,
96-
msys_sys: 'mingw32',
97-
msys_env: 'i686-gcc',
98-
shell: 'msys2 {0}'
99-
}
100-
- {
101-
name: "Windows 2022 Mingw-w64 Clang x86_64",
102-
os: windows-2022,
103-
compiler: clang++,
104-
comp: clang,
105-
run_64bit_tests: true,
106-
msys_sys: 'clang64',
107-
msys_env: 'clang-x86_64-clang',
108-
shell: 'msys2 {0}'
109-
}
110-
111-
defaults:
112-
run:
113-
working-directory: src
114-
shell: ${{ matrix.config.shell }}
115-
steps:
116-
- uses: actions/checkout@v2
117-
with:
118-
fetch-depth: 0
119-
120-
- name: Download required linux packages
121-
if: runner.os == 'Linux'
122-
run: |
123-
sudo apt update
124-
sudo apt install expect valgrind g++-multilib qemu-user
125-
126-
- name: Setup msys and install required packages
127-
if: runner.os == 'Windows'
128-
uses: msys2/setup-msys2@v2
129-
with:
130-
msystem: ${{matrix.config.msys_sys}}
131-
install: mingw-w64-${{matrix.config.msys_env}} make git expect
132-
133-
- name: Download the used network from the fishtest framework
134-
run: |
135-
make net
136-
137-
- name: Extract the bench number from the commit history
138-
run: |
139-
git log HEAD | grep "\b[Bb]ench[ :]\+[0-9]\{7\}" | head -n 1 | sed "s/[^0-9]*\([0-9]*\).*/\1/g" > git_sig
140-
[ -s git_sig ] && echo "benchref=$(cat git_sig)" >> $GITHUB_ENV && echo "Reference bench:" $(cat git_sig) || echo "No bench found"
141-
142-
- name: Check compiler
143-
run: |
144-
export PATH=$PATH:$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin
145-
$COMPILER -v
146-
147-
- name: Test help target
148-
run: |
149-
make help
150-
151-
# x86-32 tests
152-
153-
- name: Test debug x86-32 build
154-
if: ${{ matrix.config.run_32bit_tests }}
155-
run: |
156-
export CXXFLAGS="-Werror -D_GLIBCXX_DEBUG"
157-
make clean
158-
make -j2 ARCH=x86-32 optimize=no debug=yes build
159-
../tests/signature.sh $benchref
160-
161-
- name: Test x86-32 build
162-
if: ${{ matrix.config.run_32bit_tests }}
163-
run: |
164-
make clean
165-
make -j2 ARCH=x86-32 build
166-
../tests/signature.sh $benchref
167-
168-
- name: Test x86-32-sse41-popcnt build
169-
if: ${{ matrix.config.run_32bit_tests }}
170-
run: |
171-
make clean
172-
make -j2 ARCH=x86-32-sse41-popcnt build
173-
../tests/signature.sh $benchref
174-
175-
- name: Test x86-32-sse2 build
176-
if: ${{ matrix.config.run_32bit_tests }}
177-
run: |
178-
make clean
179-
make -j2 ARCH=x86-32-sse2 build
180-
../tests/signature.sh $benchref
181-
182-
- name: Test general-32 build
183-
if: ${{ matrix.config.run_32bit_tests }}
184-
run: |
185-
make clean
186-
make -j2 ARCH=general-32 build
187-
../tests/signature.sh $benchref
188-
189-
# x86-64 tests
190-
191-
- name: Test debug x86-64-modern build
192-
if: ${{ matrix.config.run_64bit_tests }}
193-
run: |
194-
export CXXFLAGS="-Werror -D_GLIBCXX_DEBUG"
195-
make clean
196-
make -j2 ARCH=x86-64-modern optimize=no debug=yes build
197-
../tests/signature.sh $benchref
198-
199-
- name: Test x86-64-modern build
200-
if: ${{ matrix.config.run_64bit_tests }}
201-
run: |
202-
make clean
203-
make -j2 ARCH=x86-64-modern build
204-
../tests/signature.sh $benchref
205-
206-
- name: Test x86-64-ssse3 build
207-
if: ${{ matrix.config.run_64bit_tests }}
208-
run: |
209-
make clean
210-
make -j2 ARCH=x86-64-ssse3 build
211-
../tests/signature.sh $benchref
212-
213-
- name: Test x86-64-sse3-popcnt build
214-
if: ${{ matrix.config.run_64bit_tests }}
215-
run: |
216-
make clean
217-
make -j2 ARCH=x86-64-sse3-popcnt build
218-
../tests/signature.sh $benchref
219-
220-
- name: Test x86-64 build
221-
if: ${{ matrix.config.run_64bit_tests }}
222-
run: |
223-
make clean
224-
make -j2 ARCH=x86-64 build
225-
../tests/signature.sh $benchref
226-
227-
- name: Test general-64 build
228-
if: matrix.config.run_64bit_tests
229-
run: |
230-
make clean
231-
make -j2 ARCH=general-64 build
232-
../tests/signature.sh $benchref
233-
234-
# x86-64 with newer extensions tests
235-
236-
- name: Compile x86-64-avx2 build
237-
if: ${{ matrix.config.run_64bit_tests }}
238-
run: |
239-
make clean
240-
make -j2 ARCH=x86-64-avx2 build
241-
242-
- name: Compile x86-64-bmi2 build
243-
if: ${{ matrix.config.run_64bit_tests }}
244-
run: |
245-
make clean
246-
make -j2 ARCH=x86-64-bmi2 build
247-
248-
- name: Compile x86-64-avx512 build
249-
if: ${{ matrix.config.run_64bit_tests }}
250-
run: |
251-
make clean
252-
make -j2 ARCH=x86-64-avx512 build
253-
254-
- name: Compile x86-64-vnni512 build
255-
if: ${{ matrix.config.run_64bit_tests }}
256-
run: |
257-
make clean
258-
make -j2 ARCH=x86-64-vnni512 build
259-
260-
- name: Compile x86-64-vnni256 build
261-
if: ${{ matrix.config.run_64bit_tests }}
262-
run: |
263-
make clean
264-
make -j2 ARCH=x86-64-vnni256 build
265-
266-
# armv8 tests
267-
268-
- name: Test armv8 build
269-
if: ${{ matrix.config.run_armv8_tests }}
270-
run: |
271-
ANDROID_ROOT=/usr/local/lib/android
272-
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
273-
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
274-
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
275-
ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle
276-
ln -sfn $ANDROID_SDK_ROOT/ndk/21.4.7075529 $ANDROID_NDK_ROOT
277-
export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
278-
export LDFLAGS="-static -Wno-unused-command-line-argument"
279-
make clean
280-
make -j2 ARCH=armv8 build
281-
../tests/signature.sh $benchref
282-
283-
# armv7 tests
284-
285-
- name: Test armv7 build
286-
if: ${{ matrix.config.run_armv7_tests }}
287-
run: |
288-
ANDROID_ROOT=/usr/local/lib/android
289-
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
290-
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
291-
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
292-
ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle
293-
ln -sfn $ANDROID_SDK_ROOT/ndk/21.4.7075529 $ANDROID_NDK_ROOT
294-
export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
295-
export LDFLAGS="-static -Wno-unused-command-line-argument"
296-
make clean
297-
make -j2 ARCH=armv7 build
298-
../tests/signature.sh $benchref
299-
300-
- name: Test armv7-neon build
301-
if: ${{ matrix.config.run_armv7_tests }}
302-
run: |
303-
ANDROID_ROOT=/usr/local/lib/android
304-
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
305-
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
306-
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
307-
ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle
308-
ln -sfn $ANDROID_SDK_ROOT/ndk/21.4.7075529 $ANDROID_NDK_ROOT
309-
export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
310-
export LDFLAGS="-static -Wno-unused-command-line-argument"
311-
make clean
312-
make -j2 ARCH=armv7-neon build
313-
../tests/signature.sh $benchref
314-
315-
# Other tests
316-
317-
- name: Check perft and search reproducibility
318-
if: ${{ matrix.config.run_64bit_tests }}
319-
run: |
320-
make clean
321-
make -j2 ARCH=x86-64-modern build
322-
../tests/perft.sh
323-
../tests/reprosearch.sh
324-
325-
# Sanitizers
326-
327-
- name: Run under valgrind
328-
if: ${{ matrix.config.run_expensive_tests }}
329-
run: |
330-
export CXXFLAGS="-O1 -fno-inline"
331-
make clean
332-
make -j2 ARCH=x86-64-modern debug=yes optimize=no build > /dev/null
333-
../tests/instrumented.sh --valgrind
334-
../tests/instrumented.sh --valgrind-thread
335-
336-
- name: Run with UB sanitizer
337-
if: ${{ matrix.config.run_expensive_tests }}
338-
run: |
339-
export CXXFLAGS="-O1 -fno-inline"
340-
make clean
341-
make -j2 ARCH=x86-64-modern sanitize=undefined optimize=no debug=yes build > /dev/null
342-
../tests/instrumented.sh --sanitizer-undefined
343-
344-
- name: Run with thread sanitizer
345-
if: ${{ matrix.config.run_expensive_tests }}
346-
run: |
347-
export CXXFLAGS="-O1 -fno-inline"
348-
make clean
349-
make -j2 ARCH=x86-64-modern sanitize=thread optimize=no debug=yes build > /dev/null
350-
../tests/instrumented.sh --sanitizer-thread
13+
Sanitizers:
14+
uses: ./.github/workflows/stockfish_sanitizers.yml
15+
Tests:
16+
uses: ./.github/workflows/stockfish_test.yml
17+
Compiles:
18+
uses: ./.github/workflows/stockfish_compile_test.yml
19+
Binaries:
20+
if: github.ref == 'refs/heads/master'
21+
uses: ./.github/workflows/stockfish_binaries.yml

0 commit comments

Comments
 (0)