1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-06-28 00:19:50 +00:00

GitHub Actions: install NDK once and clean up yaml

Use Ubuntu 22.04 as runner for NDK to avoid a qemu bug with `profile-build`

closes https://github.com/official-stockfish/Stockfish/pull/4280

No functional change
This commit is contained in:
ppigazzini 2022-12-11 12:06:22 +01:00 committed by Joost VandeVondele
parent 310928e985
commit 5fe1fa0210
5 changed files with 177 additions and 229 deletions

View file

@ -15,22 +15,18 @@ jobs:
strategy: strategy:
matrix: matrix:
config: config:
- { - name: Android NDK aarch64
name: "Android NDK aarch64", os: ubuntu-22.04
os: ubuntu-20.04, compiler: aarch64-linux-android21-clang++
compiler: aarch64-linux-android21-clang++, emu: qemu-aarch64
emu: qemu-aarch64, comp: ndk
comp: ndk, shell: bash {0}
shell: 'bash {0}' - name: Android NDK arm
} os: ubuntu-22.04
- { compiler: armv7a-linux-androideabi21-clang++
name: "Android NDK arm", emu: qemu-arm
os: ubuntu-20.04, comp: ndk
compiler: armv7a-linux-androideabi21-clang++, shell: bash {0}
emu: qemu-arm,
comp: ndk,
shell: 'bash {0}'
}
binaries: binaries:
- armv8 - armv8
- armv7 - armv7
@ -57,18 +53,27 @@ jobs:
sudo apt update sudo apt update
sudo apt install qemu-user sudo apt install qemu-user
- name: Install NDK
if: runner.os == 'Linux'
run: |
if [ $COMP == ndk ]; then
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
fi
- name: Download the used network from the fishtest framework - name: Download the used network from the fishtest framework
run: make net run: make net
- name: Check compiler - name: Check compiler
run: | run: |
if [ $COMP == ndk ]; then if [ $COMP == ndk ]; then
ANDROID_ROOT=/usr/local/lib/android export PATH=${{ env.ANDROID_NDK_BIN }}:$PATH
ANDROID_SDK_ROOT=$ANDROID_ROOT/sdk
SDKMANAGER=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/21.4.7075529
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
fi fi
$COMPILER -v $COMPILER -v
@ -83,12 +88,7 @@ jobs:
- name: Compile ${{ matrix.binaries }} build - name: Compile ${{ matrix.binaries }} build
run: | run: |
if [ $COMP == ndk ]; then if [ $COMP == ndk ]; then
ANDROID_ROOT=/usr/local/lib/android export PATH=${{ env.ANDROID_NDK_BIN }}:$PATH
ANDROID_SDK_ROOT=$ANDROID_ROOT/sdk
SDKMANAGER=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/21.4.7075529
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
export LDFLAGS="-static -Wno-unused-command-line-argument" export LDFLAGS="-static -Wno-unused-command-line-argument"
fi fi
make clean make clean

View file

@ -14,30 +14,24 @@ jobs:
strategy: strategy:
matrix: matrix:
config: config:
- { - name: Ubuntu 20.04 GCC
name: "Ubuntu 20.04 GCC", os: ubuntu-20.04
os: ubuntu-20.04, compiler: g++
compiler: g++, comp: gcc
comp: gcc, shell: bash {0}
shell: 'bash {0}' - name: MacOS 12 Apple Clang
} os: macos-12
- { compiler: clang++
name: "MacOS 12 Apple Clang", comp: clang
os: macos-12, shell: bash {0}
compiler: clang++, - name: Windows 2022 Mingw-w64 GCC x86_64
comp: clang, os: windows-2022
shell: 'bash {0}' compiler: g++
} comp: mingw
- { msys_sys: mingw64
name: "Windows 2022 Mingw-w64 GCC x86_64", msys_env: x86_64-gcc
os: windows-2022, shell: msys2 {0}
compiler: g++, ext: .exe
comp: mingw,
msys_sys: 'mingw64',
msys_env: 'x86_64-gcc',
shell: 'msys2 {0}',
ext: .exe
}
binaries: binaries:
- x86-64 - x86-64
- x86-64-modern - x86-64-modern

View file

@ -11,52 +11,40 @@ jobs:
strategy: strategy:
matrix: matrix:
config: config:
- { - name: Ubuntu 20.04 GCC
name: "Ubuntu 20.04 GCC", os: ubuntu-20.04
os: ubuntu-20.04, compiler: g++
compiler: g++, comp: gcc
comp: gcc, shell: bash {0}
shell: 'bash {0}' - name: Ubuntu 20.04 Clang
} os: ubuntu-20.04
- { compiler: clang++
name: "Ubuntu 20.04 Clang", comp: clang
os: ubuntu-20.04, shell: bash {0}
compiler: clang++, - name: MacOS 12 Apple Clang
comp: clang, os: macos-12
shell: 'bash {0}' compiler: clang++
} comp: clang
- { shell: bash {0}
name: "MacOS 12 Apple Clang", - name: MacOS 12 GCC 11
os: macos-12, os: macos-12
compiler: clang++, compiler: g++-11
comp: clang, comp: gcc
shell: 'bash {0}' shell: bash {0}
} - name: Windows 2022 Mingw-w64 GCC x86_64
- { os: windows-2022
name: "MacOS 12 GCC 11", compiler: g++
os: macos-12, comp: mingw
compiler: g++-11, msys_sys: mingw64
comp: gcc, msys_env: x86_64-gcc
shell: 'bash {0}' shell: msys2 {0}
} - name: Windows 2022 Mingw-w64 Clang x86_64
- { os: windows-2022
name: "Windows 2022 Mingw-w64 GCC x86_64", compiler: clang++
os: windows-2022, comp: clang
compiler: g++, msys_sys: clang64
comp: mingw, msys_env: clang-x86_64-clang
msys_sys: 'mingw64', shell: msys2 {0}
msys_env: 'x86_64-gcc',
shell: 'msys2 {0}'
}
- {
name: "Windows 2022 Mingw-w64 Clang x86_64",
os: windows-2022,
compiler: clang++,
comp: clang,
msys_sys: 'clang64',
msys_env: 'clang-x86_64-clang',
shell: 'msys2 {0}'
}
defaults: defaults:
run: run:

View file

@ -12,34 +12,24 @@ jobs:
strategy: strategy:
matrix: matrix:
config: config:
- { - name: Ubuntu 20.04 GCC
name: "Ubuntu 20.04 GCC", os: ubuntu-20.04
os: ubuntu-20.04, compiler: g++
compiler: g++, comp: gcc
comp: gcc, shell: bash {0}
shell: 'bash {0}'
}
sanitizers: sanitizers:
- { - name: Run with thread sanitizer
name: Run with thread sanitizer, make_option: sanitize=thread
make_option: sanitize=thread, instrumented_option: sanitizer-thread
instrumented_option: sanitizer-thread - name: Run with UB sanitizer
} make_option: sanitize=undefined
- { instrumented_option: sanitizer-undefined
name: Run with UB sanitizer, - name: Run under valgrind
make_option: sanitize=undefined, make_option: ""
instrumented_option: sanitizer-undefined instrumented_option: valgrind
} - name: Run under valgrind-thread
- { make_option: ""
name: Run under valgrind, instrumented_option: valgrind-thread
make_option: "",
instrumented_option: valgrind
}
- {
name: Run under valgrind-thread,
make_option: "",
instrumented_option: valgrind-thread
}
defaults: defaults:
run: run:
working-directory: src working-directory: src

View file

@ -12,86 +12,68 @@ jobs:
strategy: strategy:
matrix: matrix:
config: config:
- { - name: Ubuntu 20.04 GCC
name: "Ubuntu 20.04 GCC", os: ubuntu-20.04
os: ubuntu-20.04, compiler: g++
compiler: g++, comp: gcc
comp: gcc, run_32bit_tests: true
run_32bit_tests: true, run_64bit_tests: true
run_64bit_tests: true, shell: bash {0}
shell: 'bash {0}' - name: Ubuntu 20.04 Clang
} os: ubuntu-20.04
- { compiler: clang++
name: "Ubuntu 20.04 Clang", comp: clang
os: ubuntu-20.04, run_32bit_tests: true
compiler: clang++, run_64bit_tests: true
comp: clang, shell: bash {0}
run_32bit_tests: true, - name: Android NDK aarch64
run_64bit_tests: true, os: ubuntu-22.04
shell: 'bash {0}' compiler: aarch64-linux-android21-clang++
} comp: ndk
- { run_armv8_tests: true
name: "Android NDK aarch64", shell: bash {0}
os: ubuntu-20.04, - name: Android NDK arm
compiler: aarch64-linux-android21-clang++, os: ubuntu-22.04
comp: ndk, compiler: armv7a-linux-androideabi21-clang++
run_armv8_tests: true, comp: ndk
shell: 'bash {0}' run_armv7_tests: true
} shell: bash {0}
- { - name: MacOS 12 Apple Clang
name: "Android NDK arm", os: macos-12
os: ubuntu-20.04, compiler: clang++
compiler: armv7a-linux-androideabi21-clang++, comp: clang
comp: ndk, run_64bit_tests: true
run_armv7_tests: true, shell: bash {0}
shell: 'bash {0}' - name: MacOS 12 GCC 11
} os: macos-12
- { compiler: g++-11
name: "MacOS 12 Apple Clang", comp: gcc
os: macos-12, run_64bit_tests: true
compiler: clang++, shell: bash {0}
comp: clang, - name: Windows 2022 Mingw-w64 GCC x86_64
run_64bit_tests: true, os: windows-2022
shell: 'bash {0}' compiler: g++
} comp: mingw
- { run_64bit_tests: true
name: "MacOS 12 GCC 11", msys_sys: mingw64
os: macos-12, msys_env: x86_64-gcc
compiler: g++-11, shell: msys2 {0}
comp: gcc, - name: Windows 2022 Mingw-w64 GCC i686
run_64bit_tests: true, os: windows-2022
shell: 'bash {0}' compiler: g++
} comp: mingw
- { run_32bit_tests: true
name: "Windows 2022 Mingw-w64 GCC x86_64", msys_sys: mingw32
os: windows-2022, msys_env: i686-gcc
compiler: g++, shell: msys2 {0}
comp: mingw, - name: Windows 2022 Mingw-w64 Clang x86_64
run_64bit_tests: true, os: windows-2022
msys_sys: 'mingw64', compiler: clang++
msys_env: 'x86_64-gcc', comp: clang
shell: 'msys2 {0}' run_64bit_tests: true
} msys_sys: clang64
- { msys_env: clang-x86_64-clang
name: "Windows 2022 Mingw-w64 GCC i686", shell: msys2 {0}
os: windows-2022,
compiler: g++,
comp: mingw,
run_32bit_tests: true,
msys_sys: 'mingw32',
msys_env: 'i686-gcc',
shell: 'msys2 {0}'
}
- {
name: "Windows 2022 Mingw-w64 Clang x86_64",
os: windows-2022,
compiler: clang++,
comp: clang,
run_64bit_tests: true,
msys_sys: 'clang64',
msys_env: 'clang-x86_64-clang',
shell: 'msys2 {0}'
}
defaults: defaults:
run: run:
working-directory: src working-directory: src
@ -107,6 +89,20 @@ jobs:
sudo apt update sudo apt update
sudo apt install expect valgrind g++-multilib qemu-user sudo apt install expect valgrind g++-multilib qemu-user
- name: Install NDK
if: runner.os == 'Linux'
run: |
if [ $COMP == ndk ]; then
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
fi
- name: Setup msys and install required packages - name: Setup msys and install required packages
if: runner.os == 'Windows' if: runner.os == 'Windows'
uses: msys2/setup-msys2@v2 uses: msys2/setup-msys2@v2
@ -125,12 +121,7 @@ jobs:
- name: Check compiler - name: Check compiler
run: | run: |
if [ $COMP == ndk ]; then if [ $COMP == ndk ]; then
ANDROID_ROOT=/usr/local/lib/android export PATH=${{ env.ANDROID_NDK_BIN }}:$PATH
ANDROID_SDK_ROOT=$ANDROID_ROOT/sdk
SDKMANAGER=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/21.4.7075529
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
fi fi
$COMPILER -v $COMPILER -v
@ -228,12 +219,7 @@ jobs:
- name: Test armv8 build - name: Test armv8 build
if: ${{ matrix.config.run_armv8_tests }} if: ${{ matrix.config.run_armv8_tests }}
run: | run: |
ANDROID_ROOT=/usr/local/lib/android export PATH=${{ env.ANDROID_NDK_BIN }}:$PATH
ANDROID_SDK_ROOT=$ANDROID_ROOT/sdk
SDKMANAGER=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/21.4.7075529
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
export LDFLAGS="-static -Wno-unused-command-line-argument" export LDFLAGS="-static -Wno-unused-command-line-argument"
make clean make clean
make -j2 ARCH=armv8 build make -j2 ARCH=armv8 build
@ -244,12 +230,7 @@ jobs:
- name: Test armv7 build - name: Test armv7 build
if: ${{ matrix.config.run_armv7_tests }} if: ${{ matrix.config.run_armv7_tests }}
run: | run: |
ANDROID_ROOT=/usr/local/lib/android export PATH=${{ env.ANDROID_NDK_BIN }}:$PATH
ANDROID_SDK_ROOT=$ANDROID_ROOT/sdk
SDKMANAGER=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/21.4.7075529
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
export LDFLAGS="-static -Wno-unused-command-line-argument" export LDFLAGS="-static -Wno-unused-command-line-argument"
make clean make clean
make -j2 ARCH=armv7 build make -j2 ARCH=armv7 build
@ -258,12 +239,7 @@ jobs:
- name: Test armv7-neon build - name: Test armv7-neon build
if: ${{ matrix.config.run_armv7_tests }} if: ${{ matrix.config.run_armv7_tests }}
run: | run: |
ANDROID_ROOT=/usr/local/lib/android export PATH=${{ env.ANDROID_NDK_BIN }}:$PATH
ANDROID_SDK_ROOT=$ANDROID_ROOT/sdk
SDKMANAGER=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/21.4.7075529
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
export LDFLAGS="-static -Wno-unused-command-line-argument" export LDFLAGS="-static -Wno-unused-command-line-argument"
make clean make clean
make -j2 ARCH=armv7-neon build make -j2 ARCH=armv7-neon build