jobs: - job: Windows timeoutInMinutes: 90 pool: vmImage: windows-latest strategy: matrix: 32-bit: PLATFORM: x86 64-bit: PLATFORM: x64 steps: - task: CacheBeta@1 displayName: 'cache Nim binaries' inputs: key: NimBinaries | $(Agent.OS) | $(PLATFORM) | "$(Build.SourceBranchName)" | "v7" path: NimBinaries - task: CacheBeta@1 displayName: 'cache official test fixtures' inputs: key: jsonTestsCache path: jsonTestsCache - task: CacheBeta@1 displayName: 'cache MinGW-w64' inputs: key: mingwCache | 8_1_0 | $(PLATFORM) path: mingwCache - powershell: | Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 displayName: 'long path support' - bash: | set -e # https://developercommunity.visualstudio.com/content/problem/891929/windows-2019-cygheap-base-mismatch-detected-git-ba.html export PATH="/mingw64/bin:/usr/bin:$PATH" echo "Installing MinGW-w64" if [[ $PLATFORM == "x86" ]]; then MINGW_FILE="i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z" MINGW_URL="https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/threads-posix/dwarf/${MINGW_FILE}" MINGW_DIR="mingw32" else MINGW_FILE="x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z" MINGW_URL="https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/${MINGW_FILE}" MINGW_DIR="mingw64" fi mkdir -p mingwCache cd mingwCache if [[ ! -e "$MINGW_FILE" ]]; then rm -f *.7z curl -OLsS "$MINGW_URL" fi 7z x -y -bd "$MINGW_FILE" >/dev/null mkdir -p /c/custom mv "$MINGW_DIR" /c/custom/ cd .. export PATH="/c/custom/${MINGW_DIR}/bin:$PATH" git config --global core.longpaths true git config --global core.autocrlf false mingw32-make -j2 ARCH_OVERRIDE=${PLATFORM} CI_CACHE=NimBinaries update mingw32-make -j2 ARCH_OVERRIDE=${PLATFORM} fetch-dlls mingw32-make -j2 ARCH_OVERRIDE=${PLATFORM} LOG_LEVEL=TRACE if [[ $PLATFORM == "x64" ]]; then # everything builds more slowly on 32-bit, since there's no libbacktrace support mingw32-make -j2 ARCH_OVERRIDE=${PLATFORM} LOG_LEVEL=TRACE NIMFLAGS="-d:testnet_servers_image" fi file build/beacon_node # fail fast export NIMTEST_ABORT_ON_ERROR=1 scripts/setup_official_tests.sh jsonTestsCache mingw32-make -j2 ARCH_OVERRIDE=${PLATFORM} DISABLE_TEST_FIXTURES_SCRIPT=1 test displayName: 'build and test'