Skip to content

Correct static assert for PSQTBuckets #857

Correct static assert for PSQTBuckets

Correct static assert for PSQTBuckets #857

Workflow file for this run

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