Skip to content

Let CI check C++ includes #474

Let CI check C++ includes

Let CI check C++ includes #474

Workflow file for this run

name: Pikafish
on:
push:
branches:
- master
jobs:
Pikafish:
name: ${{ matrix.config.name }}${{ matrix.arch }}
runs-on: ${{ matrix.config.os }}
env:
ARCH: x86-64${{ matrix.arch }}
COMPILER: 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.14.0-2022-10-25-lin/sde -future --
- name: MacOS
os: macos-latest
shell: bash
- name: Windows
os: windows-latest
shell: msys2 {0}
ext: .exe
sde: /d/a/Pikafish/Pikafish/.output/sde-temp-files/sde-external-9.14.0-2022-10-25-win/sde.exe -future --
arch: ["-vnni512", "-avx512", "-avxvnni", "-bmi2", "-avx2", "-sse41-popcnt", "-ssse3"]
exclude:
- arch: -avxvnni
config: {os: ubuntu-20.04}
- arch: -vnni512
config: {os: macos-latest}
- arch: -avx512
config: {os: macos-latest}
- arch: -avxvnni
config: {os: macos-latest}
- arch: -bmi2
config: {os: macos-latest}
- arch: -avx2
config: {os: macos-latest}
defaults:
run:
working-directory: src
shell: ${{ matrix.config.shell }}
steps:
- uses: actions/checkout@v3
- name: Install LLVM and Clang
if: runner.os == 'Linux'
run: |
sudo apt update
sudo apt install clang llvm
- 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@v2.1
with:
environmentVariableName: SDE_DIR
sdeVersion: 9.14.0
- name: Compile ${{ matrix.arch }} build
run: |
wget https://github.com/official-pikafish/Networks/releases/download/master-net/pikafish.nnue
make -j profile-build EXE=$EXE WINE_PATH="$SDE"
make strip EXE=$EXE
- name: Copy binary to folder
run: |
cd ..
mkdir ${{ matrix.config.name }}
cp src/$EXE ${{ matrix.config.name }}
- name: Download wiki
run: |
git clone https://github.com/official-pikafish/Pikafish.wiki.git ../Wiki
cd ../Wiki
rm -rf .git
- uses: actions/upload-artifact@v3
with:
name: Pikafish
path: |
${{ matrix.config.name }}/*
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 }}
COMPILER: 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@v3
- 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
wget https://github.com/official-pikafish/Networks/releases/download/master-net/pikafish.nnue
make -j profile-build EXE=$EXE WINE_PATH=$EMU
make strip EXE=$EXE
- name: Copy binary to folder
run: |
cd ..
mkdir Android
cp src/$EXE Android
- uses: actions/upload-artifact@v3
with:
name: Pikafish
path: |
Android/*
AUTHORS