evmc/appveyor.yml
2020-02-06 11:25:20 +01:00

84 lines
2.5 KiB
YAML

version: "{build}"
image: Visual Studio 2017
branches:
only:
- master
- /release\/.*/
- appveyor
- hunter
configuration:
- Release
environment:
matrix:
- VS: 2019
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
- VS: 2017-32bit
- VS: 2015
- GO: true
- NIM: true
cache:
- C:\.hunter\_Base\Cache -> cmake\Hunter\init.cmake
- NimBinaries
matrix:
# don't stop at the first failed job
fast_finish: false
before_build:
# Add ninja to PATH. This is done for VS2017 by vsdevcmd, but not for VS2015.
- set PATH=%PATH%;%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja
- if "%VS%" == "2019" (call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\Tools\vsdevcmd" -arch=amd64)
- if "%VS%" == "2017-32bit" (call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\Tools\vsdevcmd" -arch=x86)
- if "%VS%" == "2015" (call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall" x64)
- if defined VS cmake -S . -B build -G Ninja -Wno-dev -DTOOLCHAIN=cxx17-pic -DEVMC_TESTING=ON
build_script:
- ps: >-
if ($env:VS) {
cmake --build build --target package
}
elseif ($env:GO) {
$env:PATH = "C:\msys64\mingw64\bin;$env:PATH"
$env:GOPATH = "C:\Users\appveyor\go"
mkdir $env:GOPATH
gcc --version
go env
go get github.com/ethereum/go-ethereum/common
copy include/evmc/evmc.h bindings/go/evmc
copy include/evmc/helpers.h bindings/go/evmc
copy include/evmc/loader.h bindings/go/evmc
copy lib/loader/loader.c bindings/go/evmc
go build ./bindings/go/evmc
go generate ./bindings/go/evmc
go test -v ./bindings/go/evmc
}
elseif ($env:NIM) {
$env:PATH = "C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin;$env:PATH"
# build the Nim compiler
Remove-item alias:curl
curl -O -L -s -S https://raw.githubusercontent.com/status-im/nimbus-build-system/master/scripts/build_nim.sh
$ErrorActionPreference = 'Continue'
env MAKE="mingw32-make -j2" bash build_nim.sh Nim csources dist/nimble NimBinaries
$env:PATH = "$pwd\Nim\bin;$env:PATH"
# run the test suite
cd bindings\nim
nimble install -y
nimble test
cd ..\..
}
after_build:
- ps: >-
if ($env:VS) {
cd build
ctest -C $env:CONFIGURATION -j4 --schedule-random --output-on-failure
}
artifacts:
- path: build\evmc-*.*
name: package