mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 09:13:08 +00:00

verifies that all mate PVs printed for finished iterations (i.e. no lower or upper bounds), are complete, i.e. of the expected length and ending in mate, and do not contain drawing or illegal moves. based on a set of 2000 positions and the code in https://github.com/vondele/matetrack closes https://github.com/official-stockfish/Stockfish/pull/5390 No functional change
106 lines
3.6 KiB
YAML
106 lines
3.6 KiB
YAML
name: Stockfish
|
|
on:
|
|
push:
|
|
tags:
|
|
- "*"
|
|
branches:
|
|
- master
|
|
- tools
|
|
- github_ci
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- tools
|
|
jobs:
|
|
Prerelease:
|
|
if: github.repository == 'official-stockfish/Stockfish' && (github.ref == 'refs/heads/master' || (startsWith(github.ref_name, 'sf_') && github.ref_type == 'tag'))
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
# returns null if no pre-release exists
|
|
- name: Get Commit SHA of Latest Pre-release
|
|
run: |
|
|
# Install required packages
|
|
sudo apt-get update
|
|
sudo apt-get install -y curl jq
|
|
|
|
echo "COMMIT_SHA_TAG=$(jq -r 'map(select(.prerelease)) | first | .tag_name' <<< $(curl -s https://api.github.com/repos/${{ github.repository_owner }}/Stockfish/releases))" >> $GITHUB_ENV
|
|
|
|
# delete old previous pre-release and tag
|
|
- run: gh release delete ${{ env.COMMIT_SHA_TAG }} --cleanup-tag
|
|
if: env.COMMIT_SHA_TAG != 'null'
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
# Make sure that an old ci that 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: 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
|
|
|
|
# Create a new pre-release, the other upload_binaries.yml will upload the binaries
|
|
# to this pre-release.
|
|
- name: Create Prerelease
|
|
if: github.ref_name == 'master' && env.CHANGES == '0'
|
|
uses: softprops/action-gh-release@4634c16e79c963813287e889244c50009e7f0981
|
|
with:
|
|
name: Stockfish dev-${{ env.COMMIT_DATE }}-${{ env.COMMIT_SHA }}
|
|
tag_name: stockfish-dev-${{ env.COMMIT_DATE }}-${{ env.COMMIT_SHA }}
|
|
prerelease: true
|
|
|
|
Matrix:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
|
arm_matrix: ${{ steps.set-arm-matrix.outputs.arm_matrix }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- id: set-matrix
|
|
run: |
|
|
TASKS=$(echo $(cat .github/ci/matrix.json) )
|
|
echo "MATRIX=$TASKS" >> $GITHUB_OUTPUT
|
|
- id: set-arm-matrix
|
|
run: |
|
|
TASKS_ARM=$(echo $(cat .github/ci/arm_matrix.json) )
|
|
echo "ARM_MATRIX=$TASKS_ARM" >> $GITHUB_OUTPUT
|
|
Compilation:
|
|
needs: [Matrix]
|
|
uses: ./.github/workflows/compilation.yml
|
|
with:
|
|
matrix: ${{ needs.Matrix.outputs.matrix }}
|
|
ARMCompilation:
|
|
needs: [Matrix]
|
|
uses: ./.github/workflows/arm_compilation.yml
|
|
with:
|
|
matrix: ${{ needs.Matrix.outputs.arm_matrix }}
|
|
IWYU:
|
|
uses: ./.github/workflows/iwyu.yml
|
|
Sanitizers:
|
|
uses: ./.github/workflows/sanitizers.yml
|
|
Tests:
|
|
uses: ./.github/workflows/tests.yml
|
|
Matetrack:
|
|
uses: ./.github/workflows/matetrack.yml
|
|
Binaries:
|
|
if: github.repository == 'official-stockfish/Stockfish'
|
|
needs: [Matrix, Prerelease, Compilation]
|
|
uses: ./.github/workflows/upload_binaries.yml
|
|
with:
|
|
matrix: ${{ needs.Matrix.outputs.matrix }}
|
|
ARM_Binaries:
|
|
if: github.repository == 'official-stockfish/Stockfish'
|
|
needs: [Matrix, Prerelease, ARMCompilation]
|
|
uses: ./.github/workflows/upload_binaries.yml
|
|
with:
|
|
matrix: ${{ needs.Matrix.outputs.arm_matrix }}
|