mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-30 07:55:51 +00:00
* Workaround for misbehaving 2.5.0.post1, and can be reverted if the next version works better.
90 lines
3.0 KiB
YAML
90 lines
3.0 KiB
YAML
# Set environment variables.
|
|
environment:
|
|
PYTHON: C:/Python27-x64
|
|
|
|
# We bundle up protoc.exe and only the parts of boost and openssl we need so
|
|
# that it's a small download. We also use appveyor's free cache, avoiding fees
|
|
# downloading from S3 each time.
|
|
# TODO: script to create this package.
|
|
RIPPLED_DEPS_URL: https://ripple.github.io/Downloads/appveyor/rippled_deps15.01.zip
|
|
|
|
# Other dependencies we just download each time.
|
|
PIP_URL: https://bootstrap.pypa.io/get-pip.py
|
|
PYWIN32_URL: https://downloads.sourceforge.net/project/pywin32/pywin32/Build%20219/pywin32-219.win-amd64-py2.7.exe
|
|
|
|
# Scons honours these environment variables, setting the include/lib paths.
|
|
BOOST_ROOT: C:/rippled_deps15.01/boost
|
|
OPENSSL_ROOT: C:/rippled_deps15.01/openssl
|
|
|
|
os: Visual Studio 2015
|
|
|
|
# At the end of each successful build we cache this directory. It must be less
|
|
# than 100MB total compressed.
|
|
cache:
|
|
- "C:\\rippled_deps15.01"
|
|
|
|
# This means we'll download a zip of the branch we want, rather than the full
|
|
# history.
|
|
shallow_clone: true
|
|
|
|
install:
|
|
# We want easy_install, python and protoc.exe on PATH.
|
|
- SET PATH=%PYTHON%;%PYTHON%/Scripts;C:/rippled_deps15.01;%PATH%
|
|
|
|
# `ps` prefix means the command is executed by powershell.
|
|
- ps: Start-FileDownload $env:PIP_URL
|
|
- ps: Start-FileDownload $env:PYWIN32_URL
|
|
|
|
# Installing pip will install setuptools/easy_install.
|
|
- python get-pip.py
|
|
|
|
# Pip has some problems installing scons on windows so we use easy install.
|
|
# - easy_install scons
|
|
# Workaround
|
|
- easy_install https://pypi.python.org/packages/source/S/SCons/scons-2.5.0.tar.gz#md5=bda5530a70a41a7831d83c8b191c021e
|
|
|
|
# Scons has problems with parallel builds on windows without pywin32.
|
|
- easy_install pywin32-219.win-amd64-py2.7.exe
|
|
# (easy_install can do headless installs of .exe wizards)
|
|
|
|
# Download dependencies if appveyor didn't restore them from the cache.
|
|
# Use 7zip to unzip.
|
|
- ps: |
|
|
if (-not(Test-Path 'C:/rippled_deps15.01')) {
|
|
echo "Download from $env:RIPPLED_DEPS_URL"
|
|
Start-FileDownload "$env:RIPPLED_DEPS_URL"
|
|
7z x rippled_deps15.01.zip -oC:\ -y > $null
|
|
}
|
|
|
|
# Newer DEPS include a versions file.
|
|
# Dump it so we can verify correct behavior.
|
|
- ps: |
|
|
if (Test-Path 'C:/rippled_deps15.01/versions.txt') {
|
|
cat 'C:/rippled_deps15.01/versions.txt'
|
|
}
|
|
|
|
# TODO: This is giving me grief
|
|
# artifacts:
|
|
# # Save rippled.exe in the cloud after each build.
|
|
# - path: "build\\rippled.exe"
|
|
|
|
build_script:
|
|
# We set the environment variables needed to put compilers on the PATH.
|
|
- '"%VS140COMNTOOLS%../../VC/vcvarsall.bat" x86_amd64'
|
|
# Show which version of the compiler we are using.
|
|
- cl
|
|
- scons msvc.debug -j%NUMBER_OF_PROCESSORS%
|
|
|
|
after_build:
|
|
# Put our executable in a place where npm test can find it.
|
|
- ps: cp build/msvc.debug/rippled.exe build
|
|
- ps: ls build
|
|
|
|
test_script:
|
|
# Run the unit tests
|
|
- build\\rippled --unittest
|
|
|
|
# Run the integration tests
|
|
- npm install --progress=false
|
|
- npm test
|