Introduce Fractional LMR #770
This file contains 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-20.04 | |
shell: bash | |
sde: /home/runner/work/Pikafish/Pikafish/.output/sde-temp-files/sde-external-9.27.0-2023-09-13-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.27.0-2023-09-13-win/sde.exe -future -- | |
arch: ["-vnni512", "-avx512", "-avx512f", "-avxvnni", "-bmi2", "-avx2", "-sse41-popcnt"] | |
exclude: | |
- arch: -avxvnni | |
config: {os: ubuntu-20.04} | |
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 18 | |
rm llvm.sh | |
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 100 | |
sudo update-alternatives --install /usr/bin/llvm-profdata llvm-profdata /usr/bin/llvm-profdata-18 100 | |
sudo update-alternatives --set clang++ /usr/bin/clang++-18 | |
sudo update-alternatives --set llvm-profdata /usr/bin/llvm-profdata-18 | |
- 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: runner.os == 'Linux' || runner.os == 'Windows' | |
uses: petarpetrovt/setup-sde@91a1a03434384e064706634125a15f7446d2aafb # @v2.3 | |
with: | |
environmentVariableName: SDE_DIR | |
sdeVersion: 9.27.0 | |
- name: Compile ${{ matrix.arch }} build | |
run: | | |
make -j profile-build EXE=$EXE WINE_PATH="$SDE" | |
make strip EXE=$EXE | |
cp $EXE ../ | |
- 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-${{ matrix.config.name }}${{ matrix.arch }} | |
path: | | |
${{ env.EXE }} | |
Wiki | |
AUTHORS | |
CONTRIBUTING.md | |
Copying.txt | |
README.md | |
Top CPU Contributors.txt | |
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 ../ | |
- 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-MacOS-apple-silicon | |
path: | | |
${{ env.EXE }} | |
Wiki | |
AUTHORS | |
CONTRIBUTING.md | |
Copying.txt | |
README.md | |
Top CPU Contributors.txt | |
Pikafish-Android: | |
name: Android-${{ matrix.arch }} | |
runs-on: ubuntu-latest | |
env: | |
ARCH: ${{ matrix.arch }} | |
COMPCXX: aarch64-linux-android21-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="21.4.7075529" | |
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 }} | |
AUTHORS | |
CONTRIBUTING.md | |
Copying.txt | |
README.md | |
Top CPU Contributors.txt |