X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=appveyor.yml;h=a3732a23f4a8882ab8becf85265cac52371b6890;hp=97a97b5490d9239a12a346bba1e8f4549a120b6e;hb=cd0b8b4cf28208fffef931322749205a0ddc6066;hpb=e61f7b1e6d0273ef9447efa01e90578adef4613e diff --git a/appveyor.yml b/appveyor.yml index 97a97b54..a3732a23 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,36 +1,88 @@ version: 1.0.{build} -clone_depth: 5 +clone_depth: 50 branches: only: - master - - appveyor # Operating system (build VM template) -os: Visual Studio 2015 +os: Visual Studio 2019 +# Build platform, i.e. x86, x64, AnyCPU. This setting is optional. platform: - x86 - x64 -# Build configuration, i.e. Debug, Release, etc. +# build Configuration, i.e. Debug, Release, etc. configuration: - Debug - Release +matrix: + # The build fail immediately once one of the job fails + fast_finish: true + # Scripts that are called at very beginning, before repo cloning init: - - cmd: cmake --version - - cmd: msbuild /version + - cmake --version + - msbuild /version -# Scripts to run before build before_build: - - cmd: cd src - - cmd: echo project (Stockfish) >> CMakeLists.txt - - cmd: echo add_executable(stockfish benchmark.cpp bitbase.cpp bitboard.cpp endgame.cpp evaluate.cpp >> CMakeLists.txt - - cmd: echo main.cpp material.cpp misc.cpp movegen.cpp movepick.cpp pawns.cpp position.cpp psqt.cpp >> CMakeLists.txt - - cmd: echo search.cpp thread.cpp timeman.cpp tt.cpp uci.cpp ucioption.cpp syzygy/tbprobe.cpp) >> CMakeLists.txt + - ps: | + # Get sources + $src = get-childitem -Path *.cpp -Recurse | select -ExpandProperty FullName + $src = $src -join ' ' + $src = $src.Replace("\", "/") + + # Build CMakeLists.txt + $t = 'cmake_minimum_required(VERSION 3.17)', + 'project(Stockfish)', + 'set(CMAKE_CXX_STANDARD 17)', + 'set(CMAKE_CXX_STANDARD_REQUIRED ON)', + 'set (CMAKE_CXX_EXTENSIONS OFF)', + 'set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/src)', + 'set(source_files', $src, ')', + 'add_executable(stockfish ${source_files})' + + # Write CMakeLists.txt withouth BOM + $MyPath = (Get-Item -Path "." -Verbose).FullName + '\CMakeLists.txt' + $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False + [System.IO.File]::WriteAllLines($MyPath, $t, $Utf8NoBomEncoding) + + # Obtain bench reference from git log + $b = git log HEAD | sls "\b[Bb]ench[ :]+[0-9]{7}" | select -first 1 + $bench = $b -match '\D+(\d+)' | % { $matches[1] } + Write-Host "Reference bench:" $bench + $g = "Visual Studio 16 2019" + If (${env:PLATFORM} -eq 'x64') { $a = "x64" } + If (${env:PLATFORM} -eq 'x86') { $a = "Win32" } + cmake -G "${g}" -A ${a} . + Write-Host "Generated files for: " $g $a build_script: - - cmake -G "Visual Studio 14 2015 Win64" . - - cmake --build . + - cmake --build . --config %CONFIGURATION% -- /verbosity:minimal + - ps: | + # Download default NNUE net from fishtest + $nnuenet = Get-Content -Path src\ucioption.cpp | Select-String -CaseSensitive -Pattern "Option" | Select-String -CaseSensitive -Pattern "nn-[a-z0-9]{12}.nnue" + $dummy = $nnuenet -match "(?nn-[a-z0-9]{12}.nnue)" + $nnuenet = $Matches.nnuenet + Write-Host "Default net:" $nnuenet + $nnuedownloadurl = "https://tests.stockfishchess.org/api/nn/$nnuenet" + $nnuefilepath = "src\${env:CONFIGURATION}\$nnuenet" + if (Test-Path -Path $nnuefilepath) { + Write-Host "Already available." + } else { + Write-Host "Downloading $nnuedownloadurl to $nnuefilepath" + Invoke-WebRequest -Uri $nnuedownloadurl -OutFile $nnuefilepath + } + +before_test: + - cd src/%CONFIGURATION% + - stockfish bench 2> out.txt >NUL + - ps: | + # Verify bench number + $s = (gc "./out.txt" | out-string) + $r = ($s -match 'Nodes searched \D+(\d+)' | % { $matches[1] }) + Write-Host "Engine bench:" $r + Write-Host "Reference bench:" $bench + If ($r -ne $bench) { exit 1 }