Correct static assert for PSQTBuckets #857
This file contains hidden or 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
name: Pikafish | |
on: | |
push: | |
branches: | |
- master | |
jobs: | |
Pikafish-x86-64: | |
name: ${{ matrix.config.name }}${{ matrix.arch }} | |
runs-on: ${{ matrix.config.os }} | |
env: | |
ARCH: x86-64${{ matrix.arch }} | |
COMPCXX: clang++ | |
COMP: clang | |
EXE: pikafish${{ matrix.arch }}${{ matrix.config.ext }} | |
SDE: ${{ matrix.config.sde }} | |
strategy: | |
matrix: | |
config: | |
- name: Linux | |
os: ubuntu-22.04 | |
shell: bash | |
sde: /home/runner/work/Pikafish/Pikafish/.output/sde-temp-files/sde-external-9.33.0-2024-01-07-lin/sde -future -- | |
- name: Windows | |
os: windows-latest | |
shell: msys2 {0} | |
ext: .exe | |
sde: /d/a/Pikafish/Pikafish/.output/sde-temp-files/sde-external-9.33.0-2024-01-07-win/sde.exe -future -- | |
arch: ["-avx512icl", "-vnni512", "-avx512bw", "-avx512", "-avxvnni", "-bmi2", "-avx2", "-sse41-popcnt"] | |
defaults: | |
run: | |
working-directory: src | |
shell: ${{ matrix.config.shell }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install LLVM and Clang | |
if: runner.os == 'Linux' | |
run: | | |
wget https://apt.llvm.org/llvm.sh | |
chmod u+x llvm.sh | |
echo | sudo ./llvm.sh 20 | |
rm llvm.sh | |
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-20 100 | |
sudo update-alternatives --install /usr/bin/llvm-profdata llvm-profdata /usr/bin/llvm-profdata-20 100 | |
sudo update-alternatives --set clang++ /usr/bin/clang++-20 | |
sudo update-alternatives --set llvm-profdata /usr/bin/llvm-profdata-20 | |
- name: Setup msys and install required packages | |
if: runner.os == 'Windows' | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: clang64 | |
install: mingw-w64-clang-x86_64-clang make git expect | |
- name: Download SDE package | |
if: "!(matrix.arch == '-bmi2' || matrix.arch == '-avx2' || matrix.arch == '-sse41-popcnt')" | |
uses: petarpetrovt/[email protected] | |
with: | |
environmentVariableName: SDE_DIR | |
sdeVersion: 9.33.0 | |
- name: Compile ${{ matrix.arch }} build | |
run: | | |
if [[ "${{ matrix.arch }}" == "-bmi2" || "${{ matrix.arch }}" == "-avx2" || "${{ matrix.arch }}" == "-sse41-popcnt" ]]; then | |
SDE="" | |
fi | |
make -j profile-build EXE=$EXE WINE_PATH="$SDE" | |
make strip EXE=$EXE | |
cp $EXE ../ | |
# Artifacts automatically get zipped. | |
# To avoid double-zipping, we use the unzipped directory | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: Pikafish-${{ matrix.config.name }}${{ matrix.arch }} | |
path: ${{ env.EXE }} | |
Pikafish-MacOS: | |
name: MacOS-apple-silicon | |
runs-on: macos-latest | |
env: | |
ARCH: apple-silicon | |
COMPCXX: clang++ | |
COMP: clang | |
EXE: pikafish-apple-silicon | |
defaults: | |
run: | |
working-directory: src | |
shell: bash | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Compile apple-silicon build | |
run: | | |
make -j profile-build EXE=$EXE | |
make strip EXE=$EXE | |
cp $EXE ../ | |
# Artifacts automatically get zipped. | |
# To avoid double-zipping, we use the unzipped directory | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: Pikafish-MacOS-apple-silicon | |
path: ${{ env.EXE }} | |
Pikafish-Android: | |
name: Android-${{ matrix.arch }} | |
runs-on: ubuntu-latest | |
env: | |
ARCH: ${{ matrix.arch }} | |
COMPCXX: aarch64-linux-android29-clang++ | |
COMP: ndk | |
EXE: pikafish-${{ matrix.arch }} | |
LDFLAGS: "-static -Wno-unused-command-line-argument" | |
strategy: | |
matrix: | |
arch: ["armv8-dotprod", "armv8"] | |
defaults: | |
run: | |
working-directory: src | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download required linux packages | |
run: | | |
sudo apt update | |
sudo apt install qemu-user | |
- name: Install NDK | |
run: | | |
NDKV="27.2.12479018" | |
ANDROID_ROOT=/usr/local/lib/android | |
ANDROID_SDK_ROOT=$ANDROID_ROOT/sdk | |
SDKMANAGER=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager | |
echo "y" | $SDKMANAGER "ndk;$NDKV" | |
ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/$NDKV | |
ANDROID_NDK_BIN=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin | |
echo "ANDROID_NDK_BIN=$ANDROID_NDK_BIN" >> $GITHUB_ENV | |
- name: Compile ${{ matrix.arch }} build | |
run: | | |
export PATH=${{ env.ANDROID_NDK_BIN }}:$PATH | |
make -j profile-build EXE=$EXE WINE_PATH=$EMU | |
make strip EXE=$EXE | |
cp $EXE ../ | |
# Artifacts automatically get zipped. | |
# To avoid double-zipping, we use the unzipped directory | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: Pikafish-Android-${{ matrix.arch }} | |
path: ${{ env.EXE }} | |
Pikafish: | |
name: Pikafish | |
runs-on: ubuntu-latest | |
needs: [Pikafish-x86-64, Pikafish-MacOS, Pikafish-Android] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
- name: Put binaries into OS-specific directories | |
run: | | |
mkdir Windows | |
mv Pikafish-Windows*/* Windows | |
mkdir Linux | |
mv Pikafish-Linux*/* Linux | |
mkdir MacOS | |
mv Pikafish-MacOS*/* MacOS | |
mkdir Android | |
mv Pikafish-Android*/* Android | |
- name: Download wiki | |
run: | | |
git clone https://github.com/official-pikafish/Pikafish.wiki.git Wiki | |
cd Wiki | |
rm -rf .git | |
# Artifacts automatically get zipped. | |
# To avoid double-zipping, we use the unzipped directory | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: Pikafish | |
path: | | |
Windows | |
Linux | |
MacOS | |
Android | |
Wiki | |
AUTHORS | |
CONTRIBUTING.md | |
Copying.txt | |
README.md | |
Top CPU Contributors.txt |