mirror of
https://github.com/opelly27/Stockfish.git
synced 2026-05-20 08:37:44 +00:00
9a2d50eccc
In CI, it is typical for the process to halt immediately when an error
is encountered. However, with our `shell: bash {0}` configuration,
the process continues despite errors for posix shells.
This commit updates the behavior of posix and msys2 shells to ensure
consistency in terms of pipeline exit codes and stop conditions.
We adopt the most appropriate default behavior as recommended
by the GitHub documentation.
Update the code that searches for the bench value in the git log:
- to be compatible with the new shell settings
- to retry the value from the first line that contains
only the template and spaces/tabs/newlines
see also
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
https://github.com/msys2/setup-msys2/blob/main/main.js
closes https://github.com/official-stockfish/Stockfish/pull/4653
No functional change
169 lines
5.1 KiB
YAML
169 lines
5.1 KiB
YAML
name: Stockfish
|
|
on:
|
|
workflow_call:
|
|
jobs:
|
|
Stockfish:
|
|
name: ${{ matrix.config.name }} ${{ matrix.binaries }}
|
|
runs-on: ${{ matrix.config.os }}
|
|
env:
|
|
COMPILER: ${{ matrix.config.compiler }}
|
|
COMP: ${{ matrix.config.comp }}
|
|
EXT: ${{ matrix.config.ext }}
|
|
NAME: ${{ matrix.config.simple_name }}
|
|
BINARY: ${{ matrix.binaries }}
|
|
strategy:
|
|
matrix:
|
|
config:
|
|
- name: Ubuntu 20.04 GCC
|
|
os: ubuntu-20.04
|
|
simple_name: ubuntu
|
|
compiler: g++
|
|
comp: gcc
|
|
shell: bash
|
|
archive_ext: tar
|
|
- name: MacOS 12 Apple Clang
|
|
os: macos-12
|
|
simple_name: macos
|
|
compiler: clang++
|
|
comp: clang
|
|
shell: bash
|
|
archive_ext: tar
|
|
- name: Windows 2022 Mingw-w64 GCC x86_64
|
|
os: windows-2022
|
|
simple_name: windows
|
|
compiler: g++
|
|
comp: mingw
|
|
msys_sys: mingw64
|
|
msys_env: x86_64-gcc
|
|
shell: msys2 {0}
|
|
ext: .exe
|
|
archive_ext: zip
|
|
binaries:
|
|
- x86-64
|
|
- x86-64-modern
|
|
- x86-64-avx2
|
|
exclude:
|
|
- binaries: x86-64-avx2
|
|
config: {os: macos-12}
|
|
defaults:
|
|
run:
|
|
working-directory: src
|
|
shell: ${{ matrix.config.shell }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Download required linux packages
|
|
if: runner.os == 'Linux'
|
|
run: sudo apt update
|
|
|
|
- name: Setup msys and install required packages
|
|
if: runner.os == 'Windows'
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{ matrix.config.msys_sys }}
|
|
install: mingw-w64-${{ matrix.config.msys_env }} make git zip
|
|
|
|
- name: Download the used network from the fishtest framework
|
|
run: make net
|
|
|
|
- name: Check compiler
|
|
run: $COMPILER -v
|
|
|
|
- name: Test help target
|
|
run: make help
|
|
|
|
- name: Check git
|
|
run: git --version
|
|
|
|
# Compile profile guided builds
|
|
|
|
- name: Compile ${{ matrix.binaries }} build
|
|
run: |
|
|
make -j2 profile-build ARCH=$BINARY COMP=$COMP
|
|
make strip ARCH=$BINARY COMP=$COMP
|
|
mv ./stockfish$EXT ../stockfish-$NAME-$BINARY$EXT
|
|
|
|
- name: Remove non src files
|
|
run: git clean -fx
|
|
|
|
- name: Download wiki
|
|
run: |
|
|
git clone https://github.com/official-stockfish/Stockfish.wiki.git ../wiki
|
|
rm -rf ../wiki/.git
|
|
|
|
- name: Create directory.
|
|
run: |
|
|
cd ..
|
|
mkdir stockfish
|
|
cp -r wiki stockfish/
|
|
cp -r src stockfish/
|
|
cp stockfish-$NAME-$BINARY$EXT stockfish/
|
|
cp "Top CPU Contributors.txt" stockfish/
|
|
cp Copying.txt stockfish/
|
|
cp AUTHORS stockfish/
|
|
cp CITATION.cff stockfish/
|
|
cp README.md stockfish/
|
|
|
|
- name: Create tar
|
|
if: runner.os != 'Windows'
|
|
run: |
|
|
cd ..
|
|
tar -cvf stockfish-$NAME-$BINARY.tar stockfish
|
|
|
|
- name: Create zip
|
|
if: runner.os == 'Windows'
|
|
run: |
|
|
cd ..
|
|
zip -r stockfish-$NAME-$BINARY.zip stockfish
|
|
|
|
- name: Upload binaries
|
|
if: runner.os != 'Windows'
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: stockfish-${{ matrix.config.os }}-${{ matrix.binaries }}
|
|
path: stockfish-${{ matrix.config.simple_name }}-${{ matrix.binaries }}.tar
|
|
|
|
# Artifacts automatically get zipped
|
|
# to avoid double zipping, we use the unzipped directory
|
|
- name: Upload binaries
|
|
if: runner.os == 'Windows'
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: stockfish-${{ matrix.config.os }}-${{ matrix.binaries }}
|
|
path: stockfish
|
|
|
|
- name: Release
|
|
if: startsWith(github.ref_name, 'sf_') && github.ref_type == 'tag'
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
files: stockfish-${{ matrix.config.simple_name }}-${{ matrix.binaries }}.${{ matrix.config.archive_ext }}
|
|
|
|
- name: Get last commit sha
|
|
id: last_commit
|
|
run: echo "COMMIT_SHA=$(git rev-parse HEAD | cut -c 1-8)" >> $GITHUB_ENV
|
|
|
|
- name: Get commit date
|
|
id: commit_date
|
|
run: echo "COMMIT_DATE=$(git show -s --date=format:'%Y%m%d' --format=%cd HEAD)" >> $GITHUB_ENV
|
|
|
|
# Make sure that an old ci which still runs on master doesn't recreate a prerelease
|
|
- name: Check Pullable Commits
|
|
id: check_commits
|
|
run: |
|
|
git fetch
|
|
CHANGES=$(git rev-list HEAD..origin/master --count)
|
|
echo "CHANGES=$CHANGES" >> $GITHUB_ENV
|
|
|
|
- name: Prerelease
|
|
if: github.ref_name == 'master' && env.CHANGES == '0'
|
|
continue-on-error: true
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
name: Stockfish dev-${{ env.COMMIT_DATE }}-${{ env.COMMIT_SHA }}
|
|
tag_name: stockfish-dev-${{ env.COMMIT_DATE }}-${{ env.COMMIT_SHA }}
|
|
prerelease: true
|
|
files: stockfish-${{ matrix.config.simple_name }}-${{ matrix.binaries }}.${{ matrix.config.archive_ext }}
|
|
|