name: Stockfish on: workflow_call: jobs: Stockfish: name: ${{ matrix.sanitizers.name }} runs-on: ${{ matrix.config.os }} env: COMPILER: ${{ matrix.config.compiler }} COMP: ${{ matrix.config.comp }} CXXFLAGS: "-Werror" strategy: matrix: config: - name: Ubuntu 22.04 GCC os: ubuntu-22.04 compiler: g++ comp: gcc shell: bash sanitizers: - name: Run with thread sanitizer make_option: sanitize=thread instrumented_option: sanitizer-thread - name: Run with UB sanitizer make_option: sanitize=undefined instrumented_option: sanitizer-undefined - name: Run under valgrind make_option: "" instrumented_option: valgrind - name: Run under valgrind-thread make_option: "" instrumented_option: valgrind-thread defaults: run: working-directory: src shell: ${{ matrix.config.shell }} steps: - uses: actions/checkout@v4 - name: Download required linux packages run: | sudo apt update sudo apt install expect valgrind g++-multilib - 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 # Sanitizers - name: ${{ matrix.sanitizers.name }} run: | export CXXFLAGS="-O1 -fno-inline" make clean make -j2 ARCH=x86-64-sse41-popcnt ${{ matrix.sanitizers.make_option }} debug=yes optimize=no build > /dev/null ../tests/instrumented.sh --${{ matrix.sanitizers.instrumented_option }}