-
Notifications
You must be signed in to change notification settings - Fork 1
/
appveyor.yml
85 lines (66 loc) · 3.53 KB
/
appveyor.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Windows testing using Visual Studio.
# Syntax for this file:
# http://www.appveyor.com/docs/appveyor-yml
# See http://msdn.microsoft.com/en-us/library/ms164311.aspx for
# command-line options to MSBuild.
# Speeding up a Visual Studio build.
# http://blogs.msdn.com/b/vcblog/archive/2011/01/05/damn-my-vc-project-is-building-slower-in-vs2010-what-do-i-do-now-a-step-by-step-guide.aspx
# TODO deploy source zip also.
shallow_clone: true
image: Visual Studio 2017
platform: x64
# No need to run CI on the branch if we're also running CI for a PR.
skip_branch_with_pr: true
nuget:
disable_publish_on_pr: true
environment:
matrix:
# The Visual C++ compiler that comes with Visual Studio 2015 is v140.
#- CMAKE_TOOLSET: "v140"
# The Visual C++ compiler that comes with Visual Studio 2017 is v141.
- CMAKE_TOOLSET: "v141"
# Visual Studio 2017 can use either Visual C++ compiler.
cache:
## Cache swig, which we install via AppVeyor.
# The syntax here is <dir-to-cache> -> <invalidated-when-this-file-changes>
# If the appveyor.yml script is changed, then the cache is invalidated.
# https://www.appveyor.com/docs/build-cache/
- C:\ProgramData\chocolatey\bin -> appveyor.yml # swig.exe
- C:\ProgramData\chocolatey\lib -> appveyor.yml # supporting swig Lib files.
install:
- cmake --version
## Use Chocolatey to install SWIG.
# Only install swig if it isn't present (as a result of AppVeyor's caching).
# SWIG 3.0.8 is the minimum required version, but it does not yet exist in
# Chocolatey.
- IF NOT EXIST C:\ProgramData\chocolatey\bin\swig.exe choco install swig --version 3.0.9 --yes --limit-output #> $null
- choco install doxygen.portable --yes
## The GUI is built with the Netbeans platform.
# We need 8.2 and this isn't available on Chocolatey.
#- ps: choco install netbeans-jee --version 8.1 --yes --limit-output --allow-empty-checksums| Out-Null
# https://netbeans.org/downloads/start.html?platform=windows&lang=en&option=javase
- appveyor DownloadFile http://download.netbeans.org/netbeans/8.2/final/bundles/netbeans-8.2-javase-windows.exe
# Make sure the NetBeans installer is not corrupted.
- ps: $expectedHash = "7b0646306a7488e617837da1517a86c08b7cf6fbe4dd9d74e8a4564b5ffde004".ToUpper()
- ps: $hashFromFile = Get-FileHash -Algorithm SHA256 -Path .\netbeans-8.2-javase-windows.exe
- ps: if (($hashFromFile.Hash) -ne ($expectedHash)) { Write-Error "Hash doesn't match." }
# Install NetBeans
- ps: .\netbeans-8.2-javase-windows.exe --silent | Out-Null # This installer is gregaroius.
build_script:
# All the actual building is done in a separate PowerShell script:
# The idea is that the PowerShell script could be invoked locally.
# You can run this script locally as
# powershell -noprofile -executionpolicy bypass -file .\build_on_windows.ps1
# The script takes 1 argument: The toolset to use (basically, compiler
# version).
- ps: .\build_on_windows.ps1 -CMAKE_TOOLSET=$CMAKE_TOOLSET
after_test:
- cd %APPVEYOR_BUILD_FOLDER%
# https://www.appveyor.com/docs/packaging-artifacts/
# Upload ZIP and EXE files in the release folder.
- ps: Get-ChildItem .\release\*.zip | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
- ps: Get-ChildItem .\release\*.exe | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
# The following, if uncommented, should allow you to remote-desktop into
# the Appveyor build machine.
#on_finish:
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))