add azure-pipelines.yml

This commit is contained in:
Ștefan Talpalaru 2019-09-23 18:32:34 +02:00
parent a7a1f78499
commit a0156ae850
No known key found for this signature in database
GPG Key ID: CBF7934204F1B6F9
1 changed files with 70 additions and 0 deletions

70
azure-pipelines.yml Normal file
View File

@ -0,0 +1,70 @@
jobs:
- job: Windows
pool:
vmImage: windows-latest
strategy:
matrix:
32-bit:
PLATFORM: x86
64-bit:
PLATFORM: x64
steps:
- task: CacheBeta@0
displayName: 'cache Nim binaries'
inputs:
key: NimBinaries | $(Agent.OS) | $(PLATFORM)
path: NimBinaries
- task: CacheBeta@0
displayName: 'cache p2pd binaries'
inputs:
key: p2pdCache | $(Agent.OS) | $(PLATFORM)
path: p2pdCache
- task: CacheBeta@0
displayName: 'cache LFS JSON fixtures'
inputs:
key: jsonTestsCache
path: jsonTestsCache
- task: CacheBeta@0
displayName: 'cache MinGW-w64'
inputs:
key: mingwCache
path: mingwCache
condition: eq(variables['PLATFORM'], 'x86')
- powershell: |
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1
displayName: 'long path support'
- bash: |
set -e
if [[ $PLATFORM == "x86" ]]; then
echo "Installing 32-bit MinGW-w64"
mkdir -p mingwCache
cd mingwCache
MINGW_FILE="i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z"
if [[ ! -e "$MINGW_FILE" ]]; then
rm -f *.7z
curl -OLsS "https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/threads-posix/dwarf/${MINGW_FILE}"
fi
7z x -y -bd "$MINGW_FILE" >/dev/null
mv mingw32 /C/
cd ..
export PATH="/C/mingw32/bin:$PATH"
fi
echo "Fetching submodules"
git config --global core.longpaths true
export GIT_LFS_SKIP_SMUDGE=1
git submodule --quiet update --init --recursive
scripts/process_lfs.sh jsonTestsCache
mingw32-make -j2 ARCH_OVERRIDE=${PLATFORM} CI_CACHE=NimBinaries update
mingw32-make -j2 ARCH_OVERRIDE=${PLATFORM} fetch-dlls
mingw32-make -j2 ARCH_OVERRIDE=${PLATFORM} P2PD_CACHE=p2pdCache
file build/beacon_node
mingw32-make -j2 ARCH_OVERRIDE=${PLATFORM} DISABLE_LFS_SCRIPT=1 test
displayName: 'build and test'