mirror of
				https://github.com/Xahau/xahaud.git
				synced 2025-11-04 10:45:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			108 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# Set environment variables.
 | 
						|
environment:
 | 
						|
 | 
						|
  # We bundle up 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_PATH: rippled_deps17.05
 | 
						|
  RIPPLED_DEPS_BASE_URL: https://ripple.github.io/Downloads/appveyor
 | 
						|
  RIPPLED_OPENSSL: rippled_deps.openssl.1.0.2j.zip
 | 
						|
  RIPPLED_BOOST: rippled_deps.boost.1.70.zip
 | 
						|
  RIPPLED_BOOST_STAGE: rippled_deps.boost.stage.1.70.zip
 | 
						|
 | 
						|
  # CMake honors these environment variables, setting the include/lib paths.
 | 
						|
  BOOST_ROOT: C:/%RIPPLED_DEPS_PATH%/boost
 | 
						|
  OPENSSL_ROOT: C:/%RIPPLED_DEPS_PATH%/openssl
 | 
						|
  NIH_CACHE_ROOT: C:/%RIPPLED_DEPS_PATH%/
 | 
						|
 | 
						|
  # We've had trouble with AppVeyor apparently not having a stack as large
 | 
						|
  # as the *nix CI platforms.  AppVeyor support suggested that we try
 | 
						|
  # GCE VMs.  The following line is supposed to enable that VM type.
 | 
						|
  appveyor_build_worker_cloud: gce
 | 
						|
 | 
						|
  matrix:
 | 
						|
  - build: cmake
 | 
						|
    target: msvc.debug
 | 
						|
    buildconfig: Debug
 | 
						|
 | 
						|
os: Visual Studio 2017
 | 
						|
 | 
						|
# At the end of each successful build we cache this directory.
 | 
						|
# https://www.appveyor.com/docs/build-cache/
 | 
						|
# Resulting archive should not exceed 100 MB.
 | 
						|
cache:
 | 
						|
  - 'C:\%RIPPLED_DEPS_PATH%'
 | 
						|
 | 
						|
# This means we'll download a zip of the branch we want, rather than the full
 | 
						|
# history.
 | 
						|
shallow_clone: true
 | 
						|
 | 
						|
install:
 | 
						|
  # Download dependencies if appveyor didn't restore them from the cache.
 | 
						|
  # Use 7zip to unzip.
 | 
						|
  - ps: |
 | 
						|
        if (-not(Test-Path "C:/$env:RIPPLED_DEPS_PATH")) {
 | 
						|
            $files = @(
 | 
						|
              "$env:RIPPLED_BOOST",
 | 
						|
              "$env:RIPPLED_BOOST_STAGE",
 | 
						|
              "$env:RIPPLED_OPENSSL"
 | 
						|
              )
 | 
						|
            For ($i=0; $i -lt $files.Length; $i++) {
 | 
						|
                $file = $files[$i]
 | 
						|
                $url = "$env:RIPPLED_DEPS_BASE_URL/$file"
 | 
						|
                echo "Download $file from $url"
 | 
						|
                Start-FileDownload "$url"
 | 
						|
                7z x "$file" -o"C:\$env:RIPPLED_DEPS_PATH" -y > $null
 | 
						|
                if ($LastExitCode -ne 0) { throw "7z failed" }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        else
 | 
						|
        {
 | 
						|
            "Dependencies are in cache"
 | 
						|
            ls "C:/$env:RIPPLED_DEPS_PATH"
 | 
						|
        }
 | 
						|
 | 
						|
  # Newer DEPS include a versions file.
 | 
						|
  # Dump it so we can verify correct behavior.
 | 
						|
  - ps: |
 | 
						|
        cat "C:/$env:RIPPLED_DEPS_PATH/version*.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
 | 
						|
  - ps: |
 | 
						|
          # Build with cmake
 | 
						|
          cmake --version
 | 
						|
          $cmake_target="$($env:target).ci"
 | 
						|
          "$cmake_target"
 | 
						|
          New-Item -ItemType Directory -Force -Path "build/$cmake_target"
 | 
						|
          Push-Location "build/$cmake_target"
 | 
						|
          cmake -G"Visual Studio 15 2017 Win64" ../..
 | 
						|
          if ($LastExitCode -ne 0) { throw "CMake failed" }
 | 
						|
          cmake --build . --config $env:buildconfig --parallel 3
 | 
						|
          if ($LastExitCode -ne 0) { throw "CMake build failed" }
 | 
						|
          Pop-Location
 | 
						|
 | 
						|
after_build:
 | 
						|
  - ps: |
 | 
						|
        $exe="build/$cmake_target/$env:buildconfig/rippled"
 | 
						|
        "Exe is at $exe"
 | 
						|
 | 
						|
test_script:
 | 
						|
  - ps: |
 | 
						|
        & {
 | 
						|
          # Run the rippled unit tests
 | 
						|
          & $exe --unittest --unittest-log --unittest-jobs 2
 | 
						|
          # https://connect.microsoft.com/PowerShell/feedback/details/751703/option-to-stop-script-if-command-line-exe-fails
 | 
						|
          if ($LastExitCode -ne 0) { throw "Unit tests failed" }
 | 
						|
        }
 | 
						|
 |